# Correct way to calculate bond's Yield-to-Horizon

I'm creating some .Net libraries for bond pricing and verifying its correctness with a bond pricing excel spreadsheet (Bond Pricing and Yield from Chrisholm Roth) but I believe it calculates the Yield to Horizon erroneously. This site describes how to calculate the Yield to Horizon, with the example given defined below:

Settlement: 1-Jan-2000
Maturity: 1-Jan-2007
Coupon: 0.08
Period: Semi-Annual
Clean Price: 0.97
=>
Yield to Maturity: 0.085789


For this example the horizon is the maturity date.

Horizon: 1-Jan-2007
Horizon Re-investment: 0.05


The bond spreadsheet I'm using calculates equivalent annual Yield to Horizon as 7.831% but that doesn't tally with this formula.

${Yield\ to\ Horizon} = ((\frac{Horizon\ PV}{Bond\ PV}) ^ \frac{1}{\#payments}) ^ {period} - 1$

in this case

${Yield\ to\ Horizon} = ((\frac{1660.75811}{970}) ^ \frac{1}{14}) ^ {2} - 1 = 0.079847$

Can anyone confirm that 7.9847% is the correct Yield to Horizon for this example? If not, can you show me where I've gone wrong? Thanks.

-

The Yield to horizon for this example is 7.83%

As a handy guide using this http://finance.thinkanddone.com/tadBHRR.exe

Bond price before change in YTM
Interest compounded semi annually
Par value of bond is 1000
Coupon rate on bond is 0.04
Initial YTM on bond is 0.0428945
Years till maturity are 14
Price = coupon rate x par value x PVIFA(ytm%, n) + par value x PVIF(ytm%, n)
PVIFA(0.0428945, 14) = 10.364105182304
PVIF(0.0428945, 14) = 0.55543689025767
Price = 0.04 x 1000 x 10.364105182304 + 1000 x 0.55543689025767
Price = 414.56420729215 + 555.43689025767
Price = 970

Bond price after change in YTM
Interest compounded semi annually
Par value of bond is 1000
Coupon rate on bond is 0.04
Initial YTM on bond is 0.025
Years till maturity are 14
Price = coupon rate x par value x PVIFA(ytm%, n) + par value x PVIF(ytm%, n)
PVIFA(0.025, 14) = 11.690912169602
PVIF(0.025, 14) = 0.70772719575996
Price = 0.04 x 1000 x 11.690912169602 + 1000 x 0.70772719575996
Price = 467.63648678406 + 707.72719575996
Price = 1175.36
Horizon rate of return

Bond price using initial YTM = 970
Bond price after change in YTM = 1175.36
Change in YTM = 0.025
Bond horizon = 14
horizon rate = (1175.36/970)^(1/14) * (1+0.025) - 1
horizon rate = (1.2117137655957)^(0.071428571428571) * 1.025 - 1
horizon rate = 1.0138113426005 * 1.025 - 1
horizon rate = 1.0391566261655 - 1
horizon rate = 3.92%
Annual horizon rate = 7.83%


The 7.83% is the nominal yield to horizon, the annualized yield to horizon is indeed 7.9847% computed as (1+yth)^2-1 or [(1.0391566261655)^2 - 1] as there are two compounding periods per year

-