VRM 11: Bond Yields and Return Calculations
A bond’s realized return sets the value of the initial investment against what it is worth at the end of the holding period. What matters is remembering everything that arrived in between.
Take a bond purchased for USD 98.0 immediately after a coupon payment date. Six months later it pays a coupon of USD 1.75 and trades at USD 98.5, so the rise in price delivers a capital gain of USD 0.5.
Doubled, the 0.02296 becomes 4.592% per annum with semi-annual compounding. Compounded over two half years instead, the annual equivalent rate is 4.64%.
A full year adds one ingredient. The coupon collected at six months does not sit idle: it is invested for the remaining six months, here at 1.1%. Suppose the bond is then worth USD 98.7. Adding the price change, the second coupon and the reinvested first coupon gives 0.04305. On an annually compounded basis that is 4.305% per year, and restated semi-annually it is 4.26%.
Both are gross returns, since funding costs have been left out. Subtract them and you have the net return. Financing at 3% per annum with semi-annual compounding costs USD 1.47 over six months, being 98 multiplied by 0.015, and the net six-month return falls to 0.00796, or 1.592% per annum.
The same bond is held for one full year and financed throughout at 3% per annum with semi-annual compounding.
Dividing profit by the initial investment is the usual convention. The alternative, comparing profit to the net outlay, breaks down once a position is fully financed, because that outlay is zero.
An investor holding one Treasury security often wants to know how much better it has done than the rest of the Treasury market. Ask what amount, added to every prevailing Treasury forward rate, equates the present value of the security’s cash flows to the price paid. That amount is the spread.
Start from a strip of forward rates. Spot rates follow from compounding them, and discount factors follow directly from spot rates, so one table carries all three.
| Period (months) | Forward rate (%) | Maturity (years) | Discount factor | Implied spot rate (%) |
|---|---|---|---|---|
| 0-6 | 0.7 | 0.5 | 0.996512 | 0.700 |
| 6-12 | 1.2 | 1.0 | 0.990569 | 0.950 |
| 12-18 | 1.6 | 1.5 | 0.982707 | 1.166 |
| 18-24 | 2.0 | 2.0 | 0.972977 | 1.374 |
Source: chapter, semi-annual compounding. Final column derived here.
Each discount factor is one divided by the product of the semi-annual growth factors up to that date. At twelve months that product is 1.0035 multiplied by 1.006, giving 0.990569; extending it by 1.008 and then 1.01 gives the rest.
Suppose an investor pays USD 101.5 for a two-year Treasury bond carrying a coupon of 2.5%. Valuing its four cash flows with those discount factors puts it at USD 102.226 per USD 100 of face value, so the purchase looks cheap by USD 0.726. Turning that gain into a rate means finding the addition to every forward rate that pulls the theoretical price down to USD 101.5.
The bond above is bought for USD 101.5 when the discount factors imply USD 102.226.
The same machinery compares one market against another. The spread which, added to Treasury forward rates, reproduces the market price of an AA-rated corporate bond usually varies with maturity: three-year AA-rated bonds might trade 50 basis points over Treasuries, five-year AA-rated bonds 80 basis points.
A spread measures a bond against a whole term structure. Yield to maturity replaces that structure with one number: the single discount rate which, applied to all the bond’s cash flows, returns its market price.
Take a two-year bond whose coupon is 2.5% and whose market price is USD 102. Writing y for the yield with semi-annual compounding, its cash flows of 1.25, 1.25, 1.25 and 101.25 are discounted at successive powers of one plus y/2.
The two-year bond above pays 2.5% and trades at USD 102.
In general, the yield for a bond with price P, T years remaining and coupon c discounts each of the 2T payments of c/2 at the matching power, and the redemption of 100 over 2T periods.
Pricing between coupon payment dates
That formula assumes T is a whole number of half years. Between coupon dates two things change. The quoted price is not what changes hands, so it must become the cash price, also called the dirty price, by adding accrued interest. And the exponents stop being integers, since coupons arrive at times t1, t2 and so on up to tn = T.
A bond pays 5% per year, its dirty price is USD 97, and its five coupon dates run 0.2, then 0.7, then 1.2, then 1.7, then 2.2 years out. Discounting each payment at its own fractional date and solving gives y = 7.24%.
The appeal is the one-to-one link. A price converts into exactly one yield and back again, so quoting either says the same thing. The two move in opposite directions: a fall in the yield raises the price.
The summation in the pricing equation is a geometric series, and such a series collapses into a short closed form.
Setting x equal to one divided by (1 + y/2) collapses the series in Equation (11.1), and multiplying by c/2 values an annuity paying c per year in semi-annual instalments for T years.
A coupon-bearing bond is that annuity plus one lump sum: Equation (11.3) plus 100 divided by (1 + y/2) to the power 2T. Equation (11.2) simplifies the same way.
Letting the maturity run to infinity
A perpetuity pays c per year in semi-annual instalments and never redeems. Push T towards infinity in Equation (11.3) and the term inside the bracket shrinks to nothing, leaving the leading fraction alone.
Payments of USD 5 per annum arrive semi-annually for ten years, and the yield to maturity is 8%.
Every spot rate applying to a payment date feeds into the yield, but it does so through a tangled function rather than a simple average. The yield summarises those rates rather than being one of them, which is why the two ideas line up cleanly only in special cases.
The cleanest case is a single cash flow. A stripped bond maturing in T years pays once, so the yield to maturity of a zero-coupon bond is simply the T-year spot rate. The other clean case is a flat term structure: if every spot rate equals R, discounting at R reproduces the price of any bond whatever its coupon, so every yield equals R at every maturity.
Away from those cases, several properties hold generally.
- When the yield to maturity equals the coupon rate, the bond sells at its face value.
- A yield to maturity below the coupon rate puts the bond above face value, and while the yield holds still the price slides as time passes.
- A yield to maturity above the coupon rate puts the bond below face value, and while the yield holds still the price climbs as time passes.
- Yields and prices move in opposite directions, so a bond whose yield falls becomes more valuable.
The Japanese simple yield convention
Quoting conventions are national, and the compounding assumed in a United States Treasury yield is not universal. Japanese yields are quoted on a simple yield basis, so no compounding enters the measurement. The return has two parts: the coupon c against the price p contributes c divided by p, and the pull of the price towards the face value of JPY 100 over the remaining T years contributes the balance, spread evenly across those years.
A five-year bond with a coupon of 2% priced at JPY 99 illustrates it. The coupon term is 2 divided by 99 and the price term is 1 divided by 99 multiplied by 5, and together they give 0.0222, or 2.22%.
The carry roll-down estimates the return a position would achieve if some chosen feature of the interest rate environment did not move. It is a benchmark, not a forecast, and the assumption behind it must be stated because several are in use.
The common choice assumes forward rates are realized: the forward rate covering a future period stays put as time advances, so when that period begins its spot rate equals the forward rate quoted earlier.
A flat term structure, then a premium bond
Begin with a flat term structure at 4% and a five-year bond paying a 4% coupon on face value of USD 100. The bond is worth USD 100 and every forward rate is 4%. Fixing forward rates keeps the curve flat, so the price holds, the investor collects 2%, and the carry roll-down over six months is USD 2.00.
Change the coupon to 5% and a second component appears. At a flat 4% that bond is worth USD 104.49, and six months on, with 4.5 years left, USD 104.08, because the generous coupon is collected over a shorter life. The value falls by USD 0.41, so the carry roll-down is USD 2.09. The cash coupon of USD 2.50 is the cash-carry, and -0.41 is the price-change component.
Rolling a full forward strip
Return to the two-year Treasury bond with a 2.5% coupon valued at USD 102.226 off the forward strip of 0.7%, 1.2%, 1.6% and 2.0%. Six months on, with forwards realized, the three remaining periods carry 1.2%, then 1.6%, then 2.0%.
Discounting the remaining 1.25, 1.25 and 101.25 at 1.006, then at 1.006 multiplied by 1.008, then at that product multiplied by 1.01, puts the bond at USD 101.334. A coupon of USD 1.25 arrives on the way, so the carry roll-down is USD 0.358 per USD 100 of face value.
A faster route reaches the same figure. If forward rates are realized, any bond earns the prevailing one-period rate. That rate is 0.7% semi-annually compounded, worth 0.35% over six months, and 0.0035 multiplied by 102.226 gives 0.358 again.
The shortcut also shows that portfolio composition is irrelevant, since every portfolio earns the market rate for the next period. Trading strategy follows. If forward rates are realized, long-maturity and short-maturity bonds return the same. If realized rates come in below forward rates, long-maturity bonds do better; above them, a series of short-maturity bonds wins.
Assuming forward rates are realized is conventional, not compulsory. Three other assumptions appear in practice, and each produces a different number from the same starting position.
| Period (months) | Forward rates realized (%) | Term structure unchanged (%) | Rates actually observed (%) |
|---|---|---|---|
| 0-6 | 1.2 | 0.7 | 1.0 |
| 6-12 | 1.6 | 1.2 | 1.4 |
| 12-18 | 2.0 | 1.6 | 1.8 |
Source: the chapter’s three sets of six-month forward rates, placed side by side.
An unchanged term structure
The first alternative holds the term structure still, so in six months the strip is again 0.7%, 1.2% and 1.6%. Discounting the same bond at those rates values it at USD 101.983, and with the coupon of USD 1.25 the carry roll-down is USD 1.007, nearly three times the USD 0.358 the realized-forwards assumption produced.
The case for it rests on why the curve slopes. If an upward-sloping term structure reflects investor risk preferences, with extra return demanded for long maturities, and those preferences are stable, the shape should be stable too.
An unchanged yield to maturity
The second alternative fixes the bond’s yield to maturity. The one-period gross return is then the yield itself, and with coupons reinvested at the yield the multi-period gross return is also the yield. The objection is that yields are not expected to stand still: under an upward-sloping term structure the yield on a coupon-bearing bond is expected to rise as maturity approaches, and under a downward-sloping one to fall.
The third alternative drops convention altogether: the investor forms personal estimates of future rates and works from those. One configuration makes the choice irrelevant. If the term structure is flat, the three named assumptions coincide, because a flat curve rolled forward is the same flat curve, a flat curve held fixed is unchanged by definition, and the yield under a flat curve equals the single rate R.
The profit and loss on a fixed-income position separates into pieces that each answer a different question. The carry roll-down asks what would have been earned had the chosen rate assumption held. Rate changes capture what realized rates added relative to that assumption. Spread changes capture the effect of the bond’s spread moving. The decomposition proceeds one change at a time.
The two-year 2.5% coupon bond is bought for USD 101.5 against forward rates of 0.7%, 1.2%, 1.6% and 2.0%. Its market value is USD 102.226 and the spread is 36.6 basis points. Six months later the forward rates are 1.0%, 1.4% and 1.8% and the spread has narrowed to 30 basis points.
Second, move rates but keep the spread. Discounting at 1.0%, 1.4% and 1.8% with s unchanged gives USD 101.09, so the term structure change is worth USD 0.30.
Third, let the spread fall to 30 basis points. Repricing with s = 0.0030 gives USD 101.19, so the spread change contributes USD 0.10. The gain is 101.19 plus 1.25 less 101.5, or USD 0.94, and the components add to exactly that.
| Item | Amount (USD) | Return on the USD 101.50 paid (%) |
|---|---|---|
| Initial price of bond | 101.50 | |
| Carry roll-down | 0.54 | 0.53 |
| Rate changes | 0.30 | 0.30 |
| Spread changes | 0.10 | 0.10 |
| Final value of bond | 101.19 | |
| Cash-carry | 1.25 | |
| Total gain | 0.94 | 0.93 |
Source: chapter. The return column divides each amount by the price paid.
Two extensions
Financing costs enter as a fourth, negative component, converting gross P&L into net P&L. Separately, the example ran from one coupon payment date to the next. When both dates fall between coupon dates, the carry roll-down, rate change and spread change are computed on quoted prices, and a fourth item covers the change in accrued interest, being the accrued interest at the end less that at the start.