Shortcut to forward rates (if you have bond prices)

David Harper CFA FRM

David Harper CFA FRM
Subscriber
Friday I wrote five forward rate questions, the first one I based on an actual prior exam question. Adzi asked me, in the question thread, to source the approach. I don't think the approach is explicitly found in any of the assignments (to my knowledge). I thought it might be helpful to highlight the "shortcut." Instead of my questions, I will use GARP's actual question.

The handbook question 9.7 (FRM exam 2007) is:

The price of a three-year zero-coupon government bond is $85.16. The price of a similar four-year bond is $79.81. What is the one-year implied forward rate from year three to year four? (FRM handbook page 221).

The concise solution given is 85.16/79.18 - 1 = 6.7%

I hope you noticed that, technically, the compound frequency is missing; we are left to assume annual, but semi-annual would give us a slightly different answer. In my opinion, the question should explicitly specify that it wants annual compounding: a one-year forward rate does not imply annual compounding. We can refer to a one-year forward rate, F[3,4], under an assumption of semi-annual compounding. But that's not my main point here, sorry .... )

Our readings teach us to infer for the forward rate from: (1+R3)^3*(1+F[3,4]) = (1+R4)^4
... in words, we should expect the same return from either of two choices:
  • On the left-hand side (above), we invest in the a three-year bond and, subsequently, "roll-over" into a one year at the forward rate, F[3,4]. Of course, today we don't know what the one-year spot rate will be in three years! But the forward rate, F(3,4), is our best current guess; it the expected future one-year spot rate.
  • On the right-hand side, we invest in the four-year bond
Both sides give us an (ex ante) expected four-year return, and a no-arbitrage assumption says they should be equal (well, if we ignore the liquidity advantage of the left-hand side!)

But if we have the bond prices, they are (again, assuming annual compounding!)
P(3) = F/(1+R3)^3,
P(4) = F/(1+R4)^4,

So that, if F = face value = $100 or the face value:
(1+R3)^3 = F/P(3), and
(1+R4)^4 = F/P(4)

Our first intuitive no-arbitrage formula tells us:
(1+R3)^3*(1+F[3,4]) = (1+R4)^4, so that the forward price is given by:
F[3,4] = (1+R4)^4 / (1+R3)^3 - 1

and we can no substitute F/P(3) for (1+R3)^3 and F/P(4) for (1+R4)^4:
F[3,4] = [F/P(4)] / [F/P(3)] - 1, and since [F/P(4)] / [F/P(3)] = F/P(4) * P(3)/F = P(3)/P(4), we have:
F[3,4] = P(3)/(P4) - 1; i.e., the efficient answer given by GARP

I also used the shortcut in the question that employs discount factors instead of bond prices. The same idea applies. Let's say that the question above, instead of prices, gave us two discount factors, d(3.0) and d(4.0). We know that:
d(3.0) = 1/(1+R3)^3, and
d(4.0) = 1/(1+R4)^4, and

such that:
(1+R3)^3 = 1/d(3.0), and
(1+R4)^4 = 1/d(4.0), such that:
F[3,4] = d(3.0)/d(4.0) - 1

I hope that's interesting! David
 

David Harper CFA FRM

David Harper CFA FRM
Subscriber
Based on the follow-up queries in the same Q&A thread below (i.e., the answer to this practice question), I just wanted to now add an iteration on the same idea but now based on semi-annual compounding (the FRM assigned Tuckman uses semi-annual compounding throughout). We can always expect compound frequency to make a difference; it is the question's job to specify a compound frequency. The only real exception is when compound frequency is already implied by the instrument; e.g., a bond that pays a semi-annual compound is, by default, priced with semi-annual compound frequency; a 90-day Eurodollar futures contract is implicitly compounded quarterly.

To illustrate how we can get a different six-month forward rate, compound frequency depending, say we have two bonds and their prices are:
P(0.5) = $99.00, and P(1.0) = $97.00

If the assumption is semi-annual compounding, prices are a function of spot rates discounted semi-annually::
P(0.5) = F/(1+R[0.5]/2)
P(1.0) = F/(1 + R[1.0]/2)^2

The no-arbitrage assumption (ex ante, neglecting liquidity preference, we have the same expectation for, on the left, investing for six months and then rolling over at the six month forward, as we do, on the right, for just investing directly for one year) tells us:
(1 + R[0.5]/2)*(1+F[0.5,1.0]/2) = (1+R[1.0]/2)^2, and solving for the forward:
F[0.5,1.0] = [(1+R[1.0]/2)^2 / (1 + R[0.5]/2) - 1] * 2, then substituting prices:
F[0.5,1.0] = [P(0.5)/P(1.0) - 1] * 2; i.e., the six-month forward rate under semi-annual compounding

Using the prices as an example, if the question is, what is the six-month forward rate, F[0.5, 1.0]:
  • Under semi-annual compounding (2 compound periods per year): F[0.5,1.0] = (99/97 - 1)*2 = 4.124%
  • Now compare this, instead, to the annual compounding (illustrated in my prior post above): F[0.5,1.0] = (99/97)^2 - 1 = 4.166%
And, let's test it:

under semi-annual compounding:
  • spot rate s(0.5) = (100/99 - 1)*2 = 2.020%,
  • s(1.0) = [SQRT(100/97) - 1] * 2 = 3.069%, such that we should have an equality:
    (1 + 2.020%/2)*(1 + 4.124%/2) = (1+3.069%/2)^2
under annual compounding:
  • spot rate s(0.5) = (100/99)^(1/0.5)-1 = 2.0304%,
  • spot rate s(1.0) = (100/97) - 1 = 3.0928%,such that we should have an equality:
  • (1 + 2.0304%)^0.5 * (1 + 4.166%)^0.5 = 1 + 3.0928%
Both are valid six-month forward rates (the "six months" is the forward time period, in no way does it imply a six-month compound frequency). I hope that is helpful, thanks, David
 

jennings92

New Member
Hi David,

I have a question on exercice T4 13.4 (Tuckman) :

13.4. The term structure of spot rates is: 0.60% at 1 year; 0.90% at 2 years; 1.00% at 3 years; 2.20% at 4 years; 3.10% at 5 years.
What is the two-year forward swap rate starting in three years, F(3,5), under respectively, semi-annual (s.a.) and annual compounding?

a) 4.89% (s.a.) and 5.07% (annual)
b) 5.25% (s.a.) and 5.22% (annual)
c) 6.29% (s.a.) and 6.33% (annual)
d) 7.03% (s.a.) and 7.14% (annual)
Following your observation F(3,5) = Sqrt[P(3)/P(5)]-1 annual ; and Semi-annual F(3,5) = [P(3)/P(5)-1]*2

But the answer of this exercice is
- Semiannual F(3,5) = ([(1+3.1%/2)^(5*2)/(1+1%/2)^(3*2)]^(1/4)-1)*2 = 6.291%
- Annual F(3,5) = SQRT(1.031^5/1.01^3)-1 = 6.332%
My question is :
In semi annnual why do we need to add (^1/4) in this formula ?
And in annual why do we divide P5 by P3 (and no P3/P5 according your explanation) ?
Thank you.
 

ShaktiRathore

Well-Known Member
Subscriber
jennings,
P3=F/1.01^3
P5=F/1.031^5 as david pointed out that (1+R5)^5 = F/P(5)
so according to david,
F[3,5] = P(3)/(P5) - 1
F[3,5] = (F/1.01^3)/(F/1.031^5)- 1
F[3,5] = (1.031^5)/(1.01^3)- 1

regrding semiannual yield,
if r is the yearly forward yield from yr 3-5,
compounding r semiannually over two years is forward rate F(3,5),also need to take everything under semiannual compounding,
(1+r/2)^2*2= [(1+3.1%/2)^(5*2)/(1+1%/2)^(3*2)]
1+r/2= [(1+3.1%/2)^(5*2)/(1+1%/2)^(3*2)]^(1/4)
r/2= ([(1+3.1%/2)^(5*2)/(1+1%/2)^(3*2)]^(1/4)-1)
r=F(3,5) = ([(1+3.1%/2)^(5*2)/(1+1%/2)^(3*2)]^(1/4)-1)*2

thanks
 

MJ2013

Member
Hi

What i followed from the post is:

In case of semi-annual componding:
F(3,4)=(p(3)/p(4) -1)*2
&
In case of annual compounding:
F(3,4)=(p(3)/p(4) -1)
correct me if im wrong...also where is the SQRT used in the formula is it for annual compounding?

Also David it would be great if you could summarise all formulae related to spot/bond price from discount factor/forward rate...annual/semi annual...only short cuts pls
 

David Harper CFA FRM

David Harper CFA FRM
Subscriber
Hi MJ2013, same thinking applies:

P(3) = F/(1+R3/2)^(3*2) --> (1+R3/2)^(3*2) = F/P(3)
P(4) = F/(1+R4/2)^(4*2) --> (1+R4/2)^(4*2) = F/P(4)

(1+R3/2)^(3*2)*(1+F[3,4]/2)^2 = (1+R4/2)^(4*2), so that the forward price is given by:
(1+F[3,4]/2)^2 = (1+R4/2)^(4*2) / (1+R3/2)^(3*2), and we need the sqrt(.) now:
1+F[3,4]/2 = sqrt[(1+R4/2)^(4*2) / (1+R3/2)^(3*2)],
F[3,4] = ( sqrt [ (1+R4/2)^(4*2) / (1+R3/2)^(3*2) ] - 1)*2,
F[3,4] = ( sqrt [ F/P(4) / F/P(3) ] - 1)*2,
F[3,4] = ( sqrt [ P(3) / P(4) ] - 1 ) * 2

I can't trust myself without testing (eg):
  • if s(3) = 3%, then s.a. price = 100/1.015^6 = 91.45422, and
  • if s(4) = 5%, then s.a. price = 100/1.025^8 = 82.07466
  • So s.a. f(3,4) = [sqrt(91.45422/82.07466)-1]*2 = 11.119%. Now for the most important step, the test!:
  • 1.015^6*(1+11.119%/2)^2 =? 1.025^8 = 1.218403, yes confirmed.
re: summarize: great idea, i will add it to our project manager (for november, not possible in the near term). Thanks!
 
Actually, I am not sure if I got the calculating-shortcut concerning 13.1 and 13.4 with reference the square-root-issue with annual compounding right...

Maybe I am already confused but could we deduce the following general rule:
Can we assume that if it is about a one year period (e.g. F(3,4)) that we can just divide P3/P4 and substract 1 whereas if there are 2 periods (e.g. F(3,5)) that we have to take the square root of P3/P5 and substract 1?!
To expand that: Would that mean if there are 3 periods (e.g. F(3,6)) that the calculation would be (P3/P6)^1/3-1?
 

ShaktiRathore

Well-Known Member
Subscriber
For m period compounding , for computing n yr forward rate starting in yr x till yr x+n
(1+r/m)^m*n= [(1+3.1%/m)^((x+n)*m)/(1+1%/m)^(x*m)]
(1+r/m)= [(1+3.1%/m)^((x+n)*m)/(1+1%/m)^(x*m)]^(1/m*n)
(1+r/m)= [(1+3.1%/m)^(x+n)/(1+1%/m)^(x)]^(m/m*n)
1+r/m-1= [(1+3.1%/m)^(x+n)/(1+1%/m)^(x)]^(1/n)-1
r/m= [(1+3.1%/m)^(x+n)/(1+1%/m)^(x)]^(1/n)-1
r= m*{[(1+3.1%/m)^(x+n)/(1+1%/m)^(x)]^(1/n)-1}
r= m*{[P(x)/P(x+n))]^(1/n)-1}
Thus case 1) m=1 annual compounding
i) n=1 yr forward rate
r= 1*{[P(x)/P(x+1)]^(1/1)-1}
r= {[P(x)/P(x+1)]^(1)-1}
ii) n=2 yr forward rate
r= 1*{[P(x)/P(x)+2]^(1/2)-1}
r= {[P(x)/P(x+2)]^(1/2)-1}
ii) n=3 yr forward rate
r= 1*{[P(x)/P(x+3)]^(1/3)-1}
r= {[P(x)/P(x+3)]^(1/3)-1}

case 2) m=2 semi annual compounding
i) n=1 yr forward rate
r= 2*{[P(x)/P(x+1)]^(1/1)-1}

ii) n=2 yr forward rate
r= 2*{[P(x)/P(x+2)]^(1/2)-1}

ii) n=3 yr forward rate
r= 2*{[P(x)/P(x+3)]^(1/3)-1}

Thus generalize in this way for different compounding and forward rate periods. you can see the trend clearly for different periods
 
Hmmm...confused again... :confused:

Could it be that the general rules mentioneed above are the other way round?

e.g.: annual compounding
i) n=1 yr forward rate
r= {[P(x)/P(x+1)]^(1/1)-1}
ii) n=2 yr forward rate
r= {[P(x)/P(x+2)]^(1/2)-1}
iIi) n=3 yr forward rate
r= {[P(x)/P(x+3)]^(1/3)-1}

e.g. semi annual compounding
i) n=1 yr forward rate
r= 2*{[P(x)/P(x+1)]^(1/2)-1}
ii) n=2 yr forward rate
r= 2*{[P(x)/P(x)+2]^(1/4)-1}
iii) n=3 yr forward rate
r= 2*{[P(x)/P(x+3)]^(1/6)-1}

Reason is that only with this formula i get the result mentionned in 13.1.
 

ShaktiRathore

Well-Known Member
Subscriber
Hi made some changes in my post above please see my above post again i did committed a mistake. Please see that the generalized rule is similar for all compounding s besides including a factor of m.
 

Shantanu Mantri

New Member
They should mention the compunding frequency (the only confusion)! Rest is doable be it from spot prices, discount factors or bond rates :D
 

jwg37

New Member
Subscriber
Hi, in regard to the general formulas you posted above for the derivation of the forward rate using bond prices, could you explain how the calculation for a 6 month forward rate under semiannual compounding fits?

The formula given above of r= m*{[P(x)/P(x+n))]^(1/n)-1} would give:
=2*P(.5)/P(1)^ (1/(.5)) - 1 where 1/.5 equals 2

Above, David shows the following as the equation for the 6 month forward
F[0.5,1.0] = [P(0.5)/P(1.0) - 1] * 2; i.e., the six-month forward rate under semi-annual compounding

Why does David's formula exclude the square that I get when I divide 1 by n (.5)?

Thanks!
 

David Harper CFA FRM

David Harper CFA FRM
Subscriber
I think mabye ShaktiRathore wants r= m*{[P(x)/P(x+n))]^(1/mn)-1}
... so that it's not 1/0.5 but rather 1/(0.5*2) = 1/1, which he does use in case 2 semi-annual above. I think:

(1+s1/m)^(xm) * (1+f/m)^(nm) = (1+s2/m)^[(x+n)m]; where s1 and s2 are spots and f is forward with k periods per year. Then:
(1+f/m)^(nm) = (1+s2/m)^[(x+n)m] / (1+s1/m)^(xm), and since P(s1) = 100/(1+s1)^xm and P(s2) = 100/(1+s2/m)^[(x+n)m]:
(1+f/m)^(nm) = P(s1)/P(s2), and
f/m = [P(s1)/P(s2)]^(1/nm) - 1,
f = m * {[P(s1)/P(s2)]^(1/nm) - 1}
 

ShaktiRathore

Well-Known Member
Subscriber
HI,
(1+f/m)^(nm) = (1+s2/m)^[(x+n)m] / (1+s1/m)^(xm), i cancel m and assume P(s1) = 100/(1+s1/m)^x and P(s2) = 100/(1+s2/m)^[(x+n)]:
(1+f/m)^(n) = P(s1)/P(s2), and
f/m = [P(s1)/P(s2)]^(1/n) - 1,
f = m * {[P(s1)/P(s2)]^(1/n) - 1}
I assumed P(x)=100/(1+s1)^xm
P(x+n)=100/(1+s2/m)^[(x+n)m]: so r= m*{[P(x)/P(x+n))]^(1/mn)-1}
eliminating m from these factors and thus coming with formula, f/m = [P(s1)/P(s2)]^(1/nm) - 1, i think these makes calculationns a littele bit easier than by including m in the above.
thanks
 

David Harper CFA FRM

David Harper CFA FRM
Subscriber
ShaktiRathore I don't see how you can cancel the (m) in the first step: the bases are different. I don't see a way to avoid: f/m = [P(s1)/P(s2)]^(1/nm) - 1. The problem with your final result, I think, is that, per the comment above, if you try the six-month forward rate example (where m = 0.5 and n = 0.5) , the given formula does not seem to work but f = m * {[P(s1)/P(s2)]^(1/nm) - 1} does appear to work. If m = 1.0, then the m can be eliminated such that f = m * {[P(s1)/P(s2)]^(1/nm) - 1} --> f = {[P(s1)/P(s2)]^(1/n) - 1} for the usable case of annual compounding but not semi-annual compounding. Thanks,
 

ShaktiRathore

Well-Known Member
Subscriber
Hi David,
Yes we can always cancel it from lwas of exponents ,
(1+f/m)^(nm) = (1+s2/m)^[(x+n)m] / (1+s1/m)^(xm)=[(1+s2/m)^[(x+n)] / (1+s1/m)^(x)]^m take common power of numerator & Denominator(as x^n/y^n=[x/y]^n
Now raise to power 1/mth root both sides of above equation, e.g. x^a=y^b=> x^a/m=y^b/m taking 1/mth root on both sides
(1+f/m)^(nm)*(1/m) = {[(1+s2/m)^[(x+n)] / (1+s1/m)^(x)]^m*(1/m)
(1+f/m)^(n) = {[(1+s2/m)^[(x+n)] / (1+s1/m)^(x)]

thanks
 

David Harper CFA FRM

David Harper CFA FRM
Subscriber
Hi Shakti, but it seems not to work if (going back to the above example) for a six-month semi-annual forward rate. If we assume:
  • Price (0.5) = 99 and Price (1.0) = 97 such that:
  • s(0.5) = (100/99 - 1)*2 = 2.0202% (s.a.) and s(1.0) = [sqrt(100/97)-1]*2 = 3.0692% (s.a.)
  • The example raised above concerns the six-month semi-annual forward rate in six months such that m = 2 (s.a.) and n = 0.5 (above, your x must be = 0.5 also, such that x + n = 1.0):
  • Under f = m * {[P(s1)/P(s2)]^(1/n) - 1}, the implied f = 2* [(99/97)^(1/0.5)-1] = 8.3324%, which appears to be incorrect, whereas:
  • f = m * {[P(s1)/P(s2)]^(1/mn) - 1} = 2 * {[99/97]^(1/1.0) - 1} = 4.12% which appears to be correct as:
  • (1+3.0692%/2)^(1*2) = (1+2.0202%/2)^(0.5*2)*(1+4.1237%/2)^(0.5*2) = 1.030928; i.e., compound 1-year s.a. spot and compare to compound 0.5-year s.a. spot and "carry forward" 0.5 year s.a. six-month forward
 
Top