Bonds and the Ten Year Interest Rate

So in these wild times, the “ten year interest rate” is suddenly in the news again. But what does this mean? There is no committee that sets these rates, but it is also not something you can just measure. While you’ll find various other explanations of how to calculate the 10 year interest rate online, this may be the geekiest one, and definitely is the only one with a built-in calculator.

This post was inspired by John Salvatier’s wonderful essay Reality has a surprising amount of detail.

NOTE: This page is not investment advice! Although I’ve done my best to get the details right, there are no guarantees. I have tried and failed to get financial professionals to comment on this page, so it is entirely possible some errors remain. Do let me know of any mistakes though -> or @bert_hu_bert.

The “10 year interest rate”

Governments issue lots of bonds to raise money. A bond is a loan - you give a government 100 coins. At an agreed time in the future, that government gives you back your coins. The bond is then ‘matured’. In the period in between, they pay you an interest.

The oft quoted “10 year interest rate” turns out to derive from the government bond that is closest to getting paid back 10 years from now. Here we already see that this key benchmark is not like some physical metric. Someone decides which specific bond to peg it to, and this changes from time to time. Also, sometimes there is no clear bond that matches this description, for example because a government didn’t borrow any money for a while. In this case, alternatives are found.

It is not clear to me who picks “the bond that gives us the 10 year interest rate”. The ECB, a big central bank, says they use “secondary market yields of government bonds with maturities of close to ten years”. Ok.

In what follows, I’m going to focus on government bonds where we all assume (and very much hope) they are going to be repaid (“there won’t be a default”). In a way this is guaranteed, because governments have money printing machines.

Commercial bonds (or distressed government bonds) can trade at different values because of worries the originator might go bust.


Bonds are a great example of how something superficially simple can hide a surprising amount of detail. There is no simple formula that gives you the 10 year interest rate – it requires solving an equation iteratively.

The basics are simple. A bond has a face value (also called par value). In Europe this is often 100 euros (it is also often expressed as a percentage). Then there is a coupon, which is what the issuer will pay you every year (in Europe at least). Finally there is a maturation date, at which point you get returned the face value. So in its simplest form, this could look like this:

  1. I pay the government 100 euros, and they give me a 100 euro face value bond. Let’s say it matures in 15th of January 2032 and the coupon is 2%
  2. On the 15th of January next year, and every year up to and including 2032, the government pays me 2 euros of coupon
  3. On the 15th of January 2032, I not only get that coupon, I also get my 100 euros back. The bond has now matured.

And that’s it. How hard could it be. Keen readers have probably already spotted several problems though. For example, what happens if I don’t buy the bond at the moment it is issued? And also, even if I buy it when it is issued, would the price be exactly 100 euros?


These bonds can be bought from the issuer (the government), but from that point on they can be traded as well. And as you can imagine, the price for a bond can fluctuate. For example, on the 14th of January, I know that tomorrow the example bond from above will pay out 2 euros of coupon. At the end of the 15th of January however, the next coupon payment is nearly a year away.

Because of this, when you trade a bond, you pay separately for the accrued but not yet paid out coupon. This creates a so called ‘clean price’ that is not affected by coupon payments. If the price includes the accrued interest it is called the ‘dirty price’. That one drops by 2 euros on the 15th of January.

This already is a cause for confusion - if you look up the official price of Dutch state loans on this surprisingly clunky page, good luck trying to find out if the accrued interest is part of the prices there or not. After long study, I’ve determined it is not. These are clean prices.

The Dutch government also claims you can see 15 minute delayed prices for its bonds on Euronext but very often no recent prices are listed (perhaps because there were no trades?), but there is an order book you can view. Some of these orders somehow do not show up in the clunky page mentioned above.

Interest rate sensitivity / Yield to Maturity

So what to pay for a bond? The face value of 100 may have been fine when issued, but since then things might have changed. If there are two bonds, and one pays out a 2% coupon and the other one a 1% coupon, it is clear these bonds do not represent the same value. If I could buy the 2% coupon bond for 100 euros, I want to pay less for the 1% one. But how much less?

There are a ton of ways of thinking about this. For some reason, the industry has standardised on the concept of ‘yield to maturity’. And they’ve made up a quirky definition for that too. You’ll find a lot of nonsense on this online. The definition that follows matches up very closely to officially published ‘10 year interest rate’ numbers.

Informally, the Yield to maturity (YTM) is the interest rate on a savings account that would deliver the same result as the bond.

More formally, the current price of a bond is assumed to be the determined by the discounted cash flows emanating from the bond, up to and including the payment at maturity.

So, what does this mean? Discounted cash flow is the concept where you value 100 euros today as 100 euros, but if an instrument is set to pay you 100 euros one year from now, you might consider that to be worth 98 euros. This would be the case if you consider your ‘average cost of capital’ to be 2%.

In this system, you’d value a payment of 100 euros two years from now at \( \frac{100}{(1+0.02)^2} = 96.12 \) euros.

If you look at a bond like that, and you want to calculate the price that corresponds to that, you need to add up your discounted valuation for all the upcoming coupon payments, plus the final maturity payment:

\[ P = \sum{\frac{\mathit{Cashflow}_t}{(1+\mathit{ytm})^t}} \]

Here ’t’ stands for the fractional number of years until the payment happens.

This formula allows us to figure out the price that corresponds to a certain YTM. We know the market price of the bond already though - what we need is to determine the corresponding YTM. And this turns out to be something you can’t just calculate – you (or your computer) need to try different YTMs until the current price comes out.

You’ll find a simple formula online that approximates this result without any iterations:

\[ \mathit{Approx YTM} = \frac{C+\frac{F-P}{n}}{\frac{F+P}{2}} \] Where C is the coupon (as a percentage), F is the face (par) value, P is the current price and n is the number of years to maturity. C, F and P should all be expressed as percentages to make this work.

Intuitively this makes sense - when a bond is about to be repaid, its value is obviously back to the par value. Over the remaining time of the bond, the value will gradually move that way. The formula takes the average change of value/year as “return”, and adds to that the coupon. This formula is reasonably precise, but in this post we’re trying to reproduce the “10 year interest rate” exactly. So do read on!

The full calculation

The form below will calculate the net present value of a bond, based on discounted cash flows. In addition, it can also perform the reverse operation: determine the YTM of a bond given a known price.

Maturity: -- (YYYY-MM-DD)
Dirty price: , Known clean price:
DatePaymentDiscounted valueYears
net present value
Accrued interest
Clean price

Nothing is ever simple though - to match up to published 10 year interest rate numbers, the accrued interest on a bond matters. Incidentally, this calculator uses the ‘actual/actual’ accrual convention.

The formula above for the net present value (P) of a bond is correct, and it represents the complete value you expect to get out of the instrument.

The prices quoted for European government bonds however are clean prices. The value P above meanwhile is the complete ‘dirty’ price, including accrued interest you need to pay for to buy the bond.

So to match up the officially published 10 year interest rates to the clean prices that are published, the calculator deducts the accrued interest from the dirty price calculated above. And then it matches perfectly to what (for example) The Financial Times or Bloomberg publish.


To get to the 10 year interest rate for a country, publications pick a suitable bond that matures around 10 years in the future.

They then use the summation formula above to calculate the corresponding yield to maturity - based on the dirty price. Meanwhile, prices for bonds you’ll see quoted tend to be clean prices.

The yield to maturity of this ten-yearish term bond is then quoted as the ‘10 year interest rate’.