<p>Gilt yields are usually displayed as yield to maturity (YTM). It gives you information about how much return you can expect over a period of time if you hold the bond until maturity. This yield is usually found with some root solver (Bisection, <a href="https://en.wikipedia.org/wiki/Newton%27s_method" rel="nofollow noreferrer">Newton-Raphson</a> or the like).</p>
<p>Using the current price is a rather futile task, because the price constantly changes and will be at 100 at maturity.</p>
<p>It is relatively simple to show that plugging the YTM into the bond pricing formula yields the quoted market price. For simplicity, I ignore exact daycounts and calendars and simply assume equal payments each 6 months spread out over 10 years, with the final payment including the notional.</p>
<p>Using <a href="https://julialang.org/" rel="nofollow noreferrer">Julia</a> to do the bulk of work, the undiscounted cashflows look like this:</p>
<pre><code>c = 4.75
n = 100
cf = [(n*c/100/2) for i in 0.5:0.5:9.5]
append!(cf, (n*c/100/2 + n))
cf
DataFrame(year_frac =0.5:0.5:10, cf = cf)
</code></pre>
<p><a href="https://i.sstatic.net/bL5pt.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/bL5pt.png" alt="enter image description here" /></a></p>
<p>To get NPV, one needs to discount the cashflows and sum them up. This can be done with the following formula (f denotes the frequency of payments per year, y stands for time to maturity).</p>
<pre><code>function npv(c,n,ytm,f,y) # f = payment frequency per year, y = years to maturity
    cf = [(n*c/100/f)/((1+ytm/100/f)^i) for i in 0.5:1/f:y-1/f]
    append!(cf, (n*c/100/f + n)/(1+ytm/100/f)^y)
    return DataFrame(cf = cf), sum(cf)
end
</code></pre>
<p>If we set ytm = 0.47 (to equal Bloomberg's number), we get</p>
<p><a href="https://i.sstatic.net/GWXLr.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/GWXLr.png" alt="enter image description here" /></a></p>
<p>Using the function, we can show what a root solver is doing in this particular case - it is trying to find the YTM that makes the NPV of the casflows euqal to the quoted market price. Below, I compute a few NPVs.</p>
<p><a href="https://i.sstatic.net/WfKM2.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/WfKM2.png" alt="enter image description here" /></a></p>
<p>and show where the quoted price and computed ytm are.</p>
<p><a href="https://i.sstatic.net/PVgET.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/PVgET.png" alt="enter image description here" /></a></p>
<p>The picture above is a bit misleading because it looks as if the relationship between yield and NPV is linear, whereas it is actually convex. The reason is that I only show a small area.</p>
<p>Overall, there exist various ways to compute yields though, even for the same bond, as you can see for example in the answer to the question about <a href="https://quant.stackexchange.com/a/73322">the difference between discount yield and the US treasury convention on Bloomberg</a></p>

CC BY-SA 4.0
2022-10-07T07:45:31.190Z
2022-10-07T20:17:03.760Z
2022-10-07T20:17:03.760Z
AKdemy
<p>I will try to give you a very simple explanation of it with an example so that you understand</p>
<p>Now let's say,</p>
<p>Country - XYZ issue 5% Coupon, 10 Year Bonds on Jan 5th 2020</p>
<p>worth 100 Million, where each bond is of $100 each.</p>
<p>So basically a 1 Million Bonds of $100 each.</p>
<p>Also, Where interest is paid annually, and the Bond is redeemable at Par, i.e $100</p>
<p>The bonds get subscribed fully, and now there are holders of that Bond and the XYZ Country gets $100 Million</p>
<p>The Bonds starts trading at $100.</p>
<p>Now lets say there is more demand for the bond due to certain market conditions and the bond goes to $120 on Jan 6th, 2024.</p>
<p>Now there are 6 more payments of $5 Dollar on each bond left.</p>
<p>So if a person holds 1 Bond  till maturity they can at least expect to get $30 back provided that Nation XYZ doesn't default midway.</p>
<p>Now, Although there are 6 more payments left and the bond price will still probably fluctuate, ( it might up or down ) , But still on Jan 5th 2030, i.e 10 years after the issue, on Maturity of the bond you will get back 100 Dollars and not $120.</p>
<p>I think in your question you didn't factor in that.</p>
<p>So in your question you said that the 10 Year Gilt was trading at around 144 Pounds with a coupon of $4.75 but the Yield is 0.47 %.</p>
<p>AS IT SHOULD BE.</p>
<p>Because if you invest 144 Pounds today, although you will get 4.75 Pounds every year as your interest payment, Still upon maturity you will probably get back 100 Pounds and not 144 9 considering the Bond was issued at 100 Pounds and redeemable at par )</p>
<p>So you're directly losing 44 Pounds because of that. ( besides gaining back the interest payments made every year )</p>
<p>So eventually the return on investment will be lower than what you calcualted.</p>
<p>I think by now you would have understood why the yield is much lower than 3.29 %</p>
<p>Hope my answer was of help to you.</p>

CC BY-SA 4.0
2022-10-09T11:44:49.660Z
2022-10-09T11:53:43.513Z
2022-10-09T11:53:43.513Z
Aman
<p>According to Bloomberg, the coupon rate on a 10-year UK government gilt is 4.75%. Bloomberg also states that the yield is currently 0.47%, and the market price £144.57.
<a href="https://i.sstatic.net/WYFql.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/WYFql.png" alt="enter image description here"></a></p>

<p>The UK Debt Management Office (<a href="https://www.dmo.gov.uk/responsibilities/gilt-market/about-gilts/" rel="nofollow noreferrer">https://www.dmo.gov.uk/responsibilities/gilt-market/about-gilts/</a>) states that:</p>

<blockquote>
  <p>The prices of conventional gilts are quoted in terms of £100 nominal.</p>
</blockquote>

<p>So with a coupon rate of 4.75%, this would mean that the annual coupon payment on a 10-year UK government gilt is £4.75:</p>

<p><span class="math-container">$100 \times 0.0475 = 4.75$</span> </p>

<p>But if the following formula is correct:</p>

<p><span class="math-container">$Current$</span> <span class="math-container">$Yield = \frac{C}{P}$</span></p>

<p>Where:</p>

<p><span class="math-container">$C$</span> = Annual coupon payment</p>

<p><span class="math-container">$P$</span> = Bond price</p>

<p>Then according to the formula, the yield should be <span class="math-container">$\frac{4.75}{144.57}\approx3.29$</span>%</p>

<p>Clearly this isn't the case. So where did I go wrong with these calculations?</p>

<interest-rate><bonds><financial-markets>
How to Calculate Bond Yields
Ryan Walter
# How to Calculate Bond Yields

(Asked by: username_0 on 2020-03-24)

According to Bloomberg, the coupon rate on a 10-year UK government gilt is 4.75%. Bloomberg also states that the yield is currently 0.47%, and the market price £144.57.
[![enter image description here](https://i.sstatic.net/WYFql.png)](https://i.sstatic.net/WYFql.png)

The UK Debt Management Office (<https://www.dmo.gov.uk/responsibilities/gilt-market/about-gilts/>) states that:

> The prices of conventional gilts are quoted in terms of £100 nominal.

So with a coupon rate of 4.75%, this would mean that the annual coupon payment on a 10-year UK government gilt is £4.75:

$100 \times 0.0475 = 4.75$

But if the following formula is correct:

$Current$ $Yield = \frac{C}{P}$

Where:

$C$ = Annual coupon payment

$P$ = Bond price

Then according to the formula, the yield should be $\frac{4.75}{144.57}\approx3.29$%

Clearly this isn't the case. So where did I go wrong with these calculations?

**Tags:** interest-rate, bonds, financial-markets


---

## 2 answers

### Answer by username_1 on 2022-10-07. Score: 1

Gilt yields are usually displayed as yield to maturity (YTM). It gives you information about how much return you can expect over a period of time if you hold the bond until maturity. This yield is usually found with some root solver (Bisection, [Newton-Raphson](https://en.wikipedia.org/wiki/Newton%27s_method) or the like).

Using the current price is a rather futile task, because the price constantly changes and will be at 100 at maturity.

It is relatively simple to show that plugging the YTM into the bond pricing formula yields the quoted market price. For simplicity, I ignore exact daycounts and calendars and simply assume equal payments each 6 months spread out over 10 years, with the final payment including the notional.

Using [Julia](https://julialang.org/) to do the bulk of work, the undiscounted cashflows look like this:

```
c = 4.75
n = 100
cf = [(n*c/100/2) for i in 0.5:0.5:9.5]
append!(cf, (n*c/100/2 + n))
cf
DataFrame(year_frac =0.5:0.5:10, cf = cf)

```

[![enter image description here](https://i.sstatic.net/bL5pt.png)](https://i.sstatic.net/bL5pt.png)

To get NPV, one needs to discount the cashflows and sum them up. This can be done with the following formula (f denotes the frequency of payments per year, y stands for time to maturity).

```
function npv(c,n,ytm,f,y) # f = payment frequency per year, y = years to maturity
    cf = [(n*c/100/f)/((1+ytm/100/f)^i) for i in 0.5:1/f:y-1/f]
    append!(cf, (n*c/100/f + n)/(1+ytm/100/f)^y)
    return DataFrame(cf = cf), sum(cf)
end

```

If we set ytm = 0.47 (to equal Bloomberg's number), we get

[![enter image description here](https://i.sstatic.net/GWXLr.png)](https://i.sstatic.net/GWXLr.png)

Using the function, we can show what a root solver is doing in this particular case - it is trying to find the YTM that makes the NPV of the casflows euqal to the quoted market price. Below, I compute a few NPVs.

[![enter image description here](https://i.sstatic.net/WfKM2.png)](https://i.sstatic.net/WfKM2.png)

and show where the quoted price and computed ytm are.

[![enter image description here](https://i.sstatic.net/PVgET.png)](https://i.sstatic.net/PVgET.png)

The picture above is a bit misleading because it looks as if the relationship between yield and NPV is linear, whereas it is actually convex. The reason is that I only show a small area.

Overall, there exist various ways to compute yields though, even for the same bond, as you can see for example in the answer to the question about [the difference between discount yield and the US treasury convention on Bloomberg](https://quant.stackexchange.com/a/73322)


---

### Answer by username_2 on 2022-10-09. Score: 0

I will try to give you a very simple explanation of it with an example so that you understand

Now let's say,

Country - XYZ issue 5% Coupon, 10 Year Bonds on Jan 5th 2020

worth 100 Million, where each bond is of $100 each.

So basically a 1 Million Bonds of $100 each.

Also, Where interest is paid annually, and the Bond is redeemable at Par, i.e $100

The bonds get subscribed fully, and now there are holders of that Bond and the XYZ Country gets $100 Million

The Bonds starts trading at $100.

Now lets say there is more demand for the bond due to certain market conditions and the bond goes to $120 on Jan 6th, 2024.

Now there are 6 more payments of $5 Dollar on each bond left.

So if a person holds 1 Bond till maturity they can at least expect to get $30 back provided that Nation XYZ doesn't default midway.

Now, Although there are 6 more payments left and the bond price will still probably fluctuate, ( it might up or down ) , But still on Jan 5th 2030, i.e 10 years after the issue, on Maturity of the bond you will get back 100 Dollars and not $120.

I think in your question you didn't factor in that.

So in your question you said that the 10 Year Gilt was trading at around 144 Pounds with a coupon of $4.75 but the Yield is 0.47 %.

AS IT SHOULD BE.

Because if you invest 144 Pounds today, although you will get 4.75 Pounds every year as your interest payment, Still upon maturity you will probably get back 100 Pounds and not 144 9 considering the Bond was issued at 100 Pounds and redeemable at par )

So you're directly losing 44 Pounds because of that. ( besides gaining back the interest payments made every year )

So eventually the return on investment will be lower than what you calcualted.

I think by now you would have understood why the yield is much lower than 3.29 %

Hope my answer was of help to you.


---

