Free

Various interest rate derivatives are, in fact, equivalent to each other; i.e., they can be structured to generate equivalent (though not necessarily identical) cash flows.  This article will explain how these derivatives can be structured to be equivalent to each other. First note that you will not be asked on an exam to create equivalent […]

This article is for members only.  You can become a member now by purchasing a

CFA® Level I Membership, CFA® Level II Membership

This will give you access to this and all other articles at that membership level.

Here’s a list of the articles I have planned for Level III, but haven’t written and posted yet.  There’s some good stuff coming:

  1. Alpha/beta separation
  2. Analyst forecasts
  3. AO vs. ALM
  4. Arbitrage-free commodity forward price
  5. Asset Managers’ Code
  6. Behavioral factors
  7. Bounded rationality
  8. Cognitive errors
  9. Comparison of investor types
  10. Constraints
  11. Core-satellite portfolio
  12. Credit risk
  13. Currency hedging
  14. Currency risk
  15. Decision theory
  16. Delta hedging
  17. Efficient frontier vs. resampled efficient frontier vs. Black-Litterman vs. Monte Carlo
  18. Emotional biases
  19. Equitizing cash
  20. Equity return attribution
  21. Fixed income return attribution
  22. GIPS®
  23. Global attribution
  24. Implementation shortfall
  25. Interest rate parity
  26. Leverage
  27. Micro attribution
  28. Option strategies
    1. Short box spread
    2. Short butterfly spread
    3. Short straddle
    4. Short strangle
  29. Pension plan impacts
  30. Portable alpha
  31. Prospect theory
  32. Replication vs. sampling vs. optimization
  33. Returns-based style analysis vs. holdings-based style analysis
  34. Risk & return
  35. SAA vs. TAA
  36. Short extension
  37. Swap strategies
  38. Taylor rule
  39. Trading strategies
  40. TWAP
  41. VaR
  42. VWAP

Here’s a list of the articles I have planned for Level II, but haven’t written and posted yet.  There’s some good stuff coming:

  1. ABSs
  2. ANOVA tables
  3. CDOs
  4. CMOs
  5. Consolidation (acquisition method)
  6. Credit derivatives
  7. Delta hedging
  8. Equity method
  9. FCFE
  10. FCFF
  11. Fischer
  12. F-statistic
  13. Goodwill
  14. Greeks
  15. H-model
  16. Interest rate parity
  17. Multiple regression
  18. Mundell-Fleming
  19. OCI
  20. Option strategies
    1. Short box spread
    2. Short butterfly spread
    3. Short straddle
    4. Short strangle
  21. PPP
  22. Present value of expected loss
  23. Pricing T-bill futures
  24. Research Objectivity Standards
  25. Residual income
  26. Riding the yield curve
  27. Simple regression
  28. Swaptions
  29. Time series
  30. Treynor-Black

Here’s a list of the articles I have planned for Level I, but haven’t written and posted yet.  There’s some good stuff coming:

  1. ABSs
  2. Binomial trees
  3. Bond amortization
  4. CDOs
  5. CFF
  6. CFI
  7. CMOs
  8. Depreciation
  9. Dividends
  10. DuPont
  11. Efficient frontier
  12. FCFE
  13. FCFF
  14. Forward discount/premium
  15. Income tax expense
  16. Interest rate parity
  17. NPV & IRR
  18. OCI
  19. OPA
  20. Option payoffs
  21. Option strategies
  22. Pictures (in Economics)
  23. Project evaluation
  24. Ratios
  25. Revenue recognition
  26. Risk and return
  27. T-accounts

As an approach to asset-liability management (ALM), cash flow matching has advantages and disadvantages.  The primary advantages are that:

  • It works perfectly.
  • It is relatively simple to understand.

The primary disadvantages are that:

  • It can be costly (i.e., the interest that you earn on your assets may be low).
  • It may be difficult to implement in practice.

The easiest way to explain cash flow matching is through an example, so here goes:

Suppose that you manage a pension fund that has liabilities of €2 million, €4 million, €7 million, and €11 million coming due in 1, 2, 3, and 4 years, respectively.  You want to invest in bonds whose cash flows will exactly match the liabilities.  The following bonds are available:

  • 1-year, 2-year, 3-year, and 4-year zero-coupon bonds; the yields (YTMs) are 1%, 2%, 3%, and 4%, respectively
  • 1-year annual-pay bonds with a coupon rate of 1%, selling at par
  • 2-year annual-pay bonds with a coupon rate of 2%, selling at par
  • 3-year annual-pay bonds with a coupon rate of 3%, selling at par
  • 4-year annual-pay bonds with a coupon rate of 4%, selling at par

The easiest way to implement cash-flow matching is with the zero-coupon bonds: buy €2 million par of  1-year bonds, €4 million par of 2-year bonds, €7 million par of 3-year bonds, and €11 million par of 4-year bonds.  This will match your cash flows perfectly – the 1-year bonds will mature in 1 year and pay €2 million, the 2-year bonds will mature in 2 years and pay €4 million, and so on, but it will be a costly way to match the cash flows; the outlay today to buy the bonds will be:

  • €1,980,198 (= €2 million ÷ 1.01) for the 1-year bonds
  • €3,844,675 (= €4 million ÷ 1.022) for the 2-year bonds
  • €6,405,992 (= €7 million ÷ 1.033) for the 3-year bonds
  • €9,402,846 (= €11 million ÷ 1.044) for the 4-year bonds

The total cost for these bonds is €21,633,711.

The alternative is to use the coupon-paying bonds that have higher yields.  To implement cash flow matching with coupon-paying bonds, you need to start with the longest-maturity liability and work back to the shortest.  The steps aren’t difficult, but do require that you pay attention to all of the cash flows.

  1. Buy €10,576,923 (= €11,000,000 ÷ 1.04) par of the 4-year, 4% coupon bonds.  The final cash flow on these bonds will be par plus the coupon or €10,576,923 + €423,077 = €11,000,000, which will cover the liability in 4 years.  Note that these bonds will pay annual coupons of €423,077 one year, two years, and three years from today.
  2. As you already have a cash flow of €423,077 at year 3, you need only €6,576,923 (= €7,000,000 − €423,077) more; buy €6,385,362 (= €6,576,923 ÷ 1.03) par of the 3-year, 3% coupon bonds.  The final cash flow on these bonds will be par plus the coupon or €6,385,362 + €191,561 = €6,576,923, so the total cash flow at year 3 will be €7,000,000 (= €6,576,923 + €423,077), which will cover the liability in 3 years.  Note that these bonds will pay annual coupons of €191,561 one year and two years from today.
  3. As you already have cash flows of €423,077 and €191,561 at year 2, you need only €3,385,362 (= €4,000,000 − €423,077 − €191,561) more; buy €3,318,983 (= €3,385,362 ÷ 1.02) par of the 3-year, 2% coupon bonds.  The final cash flow on these bonds will be par plus the coupon or €3,318,983 + €66,380 = €3,385,362, so the total cash flow at year 2 will be €4,000,000 (= €3,385,362 + €423,077 + €191,561), which will cover the liability in 2 years.  Note that these bonds will pay annual coupons of €66,380 one year from today.
  4. As you already have cash flows of €423,077, €191,561, and €66,380 at year 1, you need only €1,318,982 (= €2,000,000 − €423,077 − €191,561 − €66,380) more; buy €1,305,923 (= €1,318,982 ÷ 1.01) par of the 1-year, 1% coupon bonds.  The final cash flow on these bonds will be par plus the coupon or €1,305,923 + €13,059 = €1,318,982, so the total cash flow at year 1 will be €2,000,000 (= €1,318,982 + €423,077 + €191,561 + €66,380), which will cover the liability in 1 year.

Here are the cash flows in a table, which is probably easier to read:

Cash Flow by Year
Bond Year 1 Year 2 Year 3 Year 4
4-year €423,077 €423,077 €423,077 €11,000,000
3-year €191,561 €191,561 €6,576,923
2-year €66,380 €3,385,362
1-year €1,318,982
Total CF €2,000,000 €4,000,000 €7,000,000 €11,000,000

The total cost for this approach is €21,587,191, or €46,520 less than using the zero-coupon bonds.

The reason that this approach is less expensive than using only zero-coupon bonds is that the longer maturity bonds have higher yields; so, for example, the €2,000,000 cash flow in year 1 is funded partly by a bond with a 1% yield, and partly by bonds having yields of 2%, 3%, and 4%; using only zero-coupon bonds, the entire €2,000,000 is funded by a bond with a 1% yield.

The reason that cash flow matching may be difficult to implement in practice is perfectly illustrated by this example: as most euro-denominated bonds have par values of €1,000, it will be impossible to purchase exactly €10,576,923 of 4-year bonds; you would have to decide between purchasing €10,576,000 par (and falling slightly short of your cash flow need) and purchasing €10,577,000 par (and spending too much).  The same is true for the par values required at years 3, 2, and 1.

Binomial trees are used in a variety of contexts in finance:

In this series of articles, we’ll be concerned with the application of binomial trees to the valuation of bonds.  For the other applications, click on the links above.  We’ll cover:

That’s more than enough.

To create a binomial interest rate tree, you need to start with:

  1. A yield curve
  2. An interest rate volatility

The yield curve can be a par curve, a spot curve, or a forward curve. (If you’re a bit fuzzy on the differences among these curves, look here.) For the remainder of this article, we’ll assume that we’re given a par curve; as we could generate the other curves given any one of them, it doesn’t really matter which one we get.

The interest rate volatility will be given as a standard deviation: σ. We’ll see in a moment how we use it to construct the tree.

The easiest way to explain how the tree is constructed is by going through an example, so here goes:

Suppose that the benchmark (annual pay) par curve is:

Maturity Par Rate
1 2.00%
2 4.00%
3 5.60%
4 6.80%

The corresponding spot rates and (1-year) forward rates are:

Maturity Spot Rate Forward Rate
1 2.0000% 2.0000%
2 4.0408% 6.1224%
3 5.7333% 9.2014%
4 7.0587% 11.1355%

The (annual) interest rate volatility we’ll use for the tree will be σ = 10%. This is usually implemented as a continuous rate (though there’s no reason that it could not be an effective rate), meaning that we’ll be using a factor of eσ = e10% = 1.1052 to relate low and high interest rates at the same time in the tree.

Here’s the tree we’ll be constructing:

Binomial Interest Rate Tree 1

For each node (i.e., white box), the N simply tells us which node it is: node zero (N0), node low (NL), node high (NH), node low, low (NLL), and so on; the r is the (1-year) forward rate at that node.

The keys to creating the binomial interest rate tree are that:

  • The weights attached to each up leg and each down leg are all 50%. (Many people refer to these as probabilities, which is unfortunate. We’re not asserting anything about the likelihood of forward rates being higher or lower, we’re simply weighting the values we get in the upper leg and the lower leg. You’ll see.)
  • All of the rates at a given time are related by the assumed volatility of interest rates.
  • The tree has to give correct prices for (par) bonds.  This is known as calibrating the tree.

Although it’s trivial, for sake of completeness we’ll start at time t = 0, with r0 at node N0. The 1-year par bond pays a coupon of 2% ($20 on a $1,000 par bond), so discounting by r0 has to give us par:

\begin{align}\$1,000\ &=\ \frac{\$1,000\ +\ \$20}{1\ +\ r_0}\\
\\
\$1,000\left(1\ +\ r_0\right)\ &=\ \$1,020\\
\\
\left(1\ +\ r_0\right)\ &=\ \frac{\$1,020}{\$1,000}\ =\ 1.02\\
\\
r_0\ &=\ 0.02\ =\ 2.00\%
\end{align}

So, not surprisingly, r0 equals the 1-year forward rate starting today, which is the same as the 1-year spot rate, which is the same as the 1-year par rate.  Rest assured, it gets more exciting from here.

Moving to time t = 1, we have two rates to calculate: r1,L at node NL, and r1,H at node NH. We consider r1,L to be one standard deviation down (1σ down) and r1,H to be 1σ up from some sort of mean 1-year forward rate starting 1 year from today (think: up and down from the rate on the forward curve), so the relationship between r1,L and r1,H is that they differ by 2σ:

\[r_{1,H}\ =\ e^{2\sigma}r_{1,L}\ =\ e^{20\%}r_{1,L}\ =\ 1.2214r_{1,L}\]

The 2-year par bond pays a coupon of 4%, and discounting 50% (the upper weight) along the upper path and 50% (the lower weight) along the lower path (and remembering that we have a coupon payment at time t = 1, and that r0 = 2%) has to give us par:

\begin{align}\$1,000\ &=\ 0.5\left(\frac{\$1,040}{\left(1\ +\ r_{1,H}\right)\left(1.02\right)}\ +\ \frac{$40}{1.02}\right)\\
\\
&+\ 0.5\left(\frac{\$1,040}{\left(1\ +\ r_{1,L}\right)\left(1.02\right)}\ +\ \frac{$40}{1.02}\right)\\
\\
\$1,000\left(1\ +\ r_{1,H}\right)\left(1\ +\ r_{1,L}\right)\left(1.02\right)\ &=\ \$520\left(1\ +\ r_{1,L}\right)\ +\ \$520\left(1\ +\ r_{1,H}\right)\\
\\
&+\ \$40\left(1\ +\ r_{1,L}\right)\left(1\ +\ r_{1,H}\right)
\end{align}

Substituting r1,H = 1.2214r1,L gives:

\begin{align}\$1,020\left(1\ +\ 1.2214r_{1,L}\right)\left(1\ +\ r_{1,L}\right)\ &=\ \$520\left(1\ +\ r_{1,L}\right)\\
\\
&+\ \$520\left(1\ +\ 1.2214r_{1,L}\right)\\
\\
&+\ \$40\left(1\ +\ r_{1,L}\right)\left(1\ +\ 1.2214r_{1,L}\right)
\end{align}

Multiplying this all out and grouping the terms, we get:

\[\$1,196.97r_{1,L}^2\ +\ \$1,021.85r_{1,L}\ -\ $60\ =\ $0\]

This is a quadratic equation in r1,L which any high school algebra student could solve using the quadratic formula. (How exciting!) I’ll spare you the details and let you know that the solution that interests us is r1,L = 5.5154%. Thus, r1,H =1.2214(5.5154%) = 6.7365%.  (For whatever it’s worth, the other solution to the equation is r1,L = −90.8844%.  It’s probably not the one we want to use.)

If you compare these rates to the original forward curve, you’ll see that they look reasonable. The 1-year forward rate starting 1 year from today is 6.1224%. If you compare it to r1,L and r1,H, you get 6.1224% / 5.5153% = 1.1101, and 6.7364% / 6.1224% = 1.1003. Both of these are close to the factor of 1.1052 = e10%, so we should be happy with the results.

Moving to time t = 2, we now have three rates to calculate: r2,LL, r2,HL, and r2,HH. They’re related by r2,HL = 1.2214r2,LL and r2,HH = 1.2214r2,LL = 1.4918r2,LL.  The 3-year par bond pays a coupon of 5.6%, and if we discount it along all of the paths (4 in total, each with a probability of 25% (= 0.52)), we have to get par. If we follow a similar procedure to the one we used for t = 2, above, we will get a cubic (third-degree) equation for r2,LL. This can be solved using Ferrari‘s formulae (though they were originally discovered by del Ferro and Tartaglia, and published by Cardano), but in practice, the solutions are found numerically. The solution that interests us is r2,LL = 7.4755%, giving r2,HL = 9.1306%, and r2,HH = 11.1521%.

Again, if you compare these rates to the original forward curve (the 1-year forward rate starting 2 years from today is 9.2014%), you’ll see that they look reasonable: r2,HL is very close to 1f2: 9.1306% vs. 9.2014%.

For time t = 4, we have four rates to calculate, we’re going to get a quartic (fourth-degree) equation for r3,LLL, and we can solve it with Cardano‘s formulae (another of Ferrari‘s brainchildren published by Cardano). Once again, in practice the solutions will be found numerically: we’ll get r3,LLL = 8.1697%, r3,HLL = 9.9785%, r3,HHL = 12.1878%, and r3,HHH = 14.8862%. Comparing these to the forward rate of 11.1355% makes them look reasonable.

Beyond time t = 4, we have no choice: we have to proceed numerically. (Abel (building on the work of Ruffini) – and, later, Galois – proved that there is no general algebraic solution to quintic (fifth-degree) and higher-order equations.)

The tree now looks like this:

Binomial Interest Rate Tree 2

Graphically, here’s how the tree looks, compared to the forward curve:

Binomial Interest Rate Tree Graph, 10%

Here’s a comparison of the binomial tree with 10% interest rate volatility with one with 20% interest rate volatility:

Binomial Interest Rate Tree Graph, 10% & 20%

To get an idea of how big an impact interest rate volatility can have, here is a 30-year binomial interest rate tree with only 3% annual interest rate volatility; the maximum rate at 30 years is 28.6%:

Binomial Interest Rate Tree 3

At 5% annual volatility, the maximum rate at 30 years is 51.2%.  At 10% annual volatility, the maximum rate at 30 years is 218.1%!

In computing modified (or effective) duration for a portfolio of securities, we change the par interest rate (the yield to maturity) at every maturity by some small amount up and down (±Δy), and determine the percentage price change in the portfolio for 1% change in yield.  In essence, we add ±Δy to the entire par curve.  (Look here for a refresher on the par curve, and for a refresher on bootstrapping the spot curve from the par curve, which we shall be doing a bit later.)  Parallel shifts in the par curve look line this:

Key Rate Duration - Parallel Shift

Modified (or effective) duration is useful for determining how the price of a security or a portfolio of securities will change when the (par) yield curve undergoes a parallel shift, but is less useful (i.e., not useful at all) when the yield curve changes in a manner other than a parallel shift (e.g., flattening or steepening).  A more versatile measure of duration is needed in those cases; key rate duration is just such a measure.

The idea of a key rate duration (also known as partial duration) is that we don’t add ±Δy to the entire par curve; we add ±Δy only to the YTM at a specific maturity on the par curve, leaving the YTM at all other maturities unchanged; that specific maturity is called the key rate.  Thus, we have the:

  • ½-year key rate duration: ±Δy added to the ½-year YTM, while the YTMs at all other maturities remain unchanged
  • 2-year key rate duration: ±Δy added to the 2-year YTM
  • 5-year key rate duration: ±Δy added to the 5-year YTM
  • 10-year key rate duration: ±Δy added to the 10-year YTM
  • 20-year key rate duration: ±Δy added to the 20-year YTM
  • 30-year key rate duration: ±Δy added to the 30-year YTM
  • And so on

Shifts in the par curve to calculate key rate durations look like this:

Key Rate Duration - ½-Year ± 50bp

Key Rate Duration - 2-Year ± 50bp

Key Rate Duration - 5-Year ± 50bp

Key Rate Duration - 10-Year ± 50bp

Key Rate Duration - 20-Year ± 50bp

Key Rate Duration - 30-Year ± 50bp

Note that key rate durations can be modified (assuming no changes to the cash flows when the key rate changes) or effective (allowing that cash flows might change when the key rate changes).  There’s probably no reason to concern yourself about this as far as the exam goes, but in real world applications you might as well assume that key rate durations are effective durations.

Once the effect of the key-rate shift is incorporated into the bond price, the duration is computed using the standard (modified or effective) duration formula:

\[Dur_{key\ rate}\ =\ \frac{P_–\ -\ P_+}{2P_0\Delta y}\]

In many respects, key rate durations behave exactly like all other durations (Macaulay duration, modified duration, effective duration, etc.), but in some ways their behavior is unusual.  We’ll cover both.

Expected Behavior

Key Rate Duration of a Portfolio

As with Macaulay, modified, and effective duration (see here), the key rate duration of a portfolio is the weighted average of the key rate durations of its constituent bonds, where the weights are based on the market values of the constituent bonds:

\begin{align}Dur_{key\ rate_{port}}\ &=\ W_1\ ×\ Dur_{key\ rate_{bond\ 1}}\ +\ W_2\ ×\ Dur_{key\ rate_{bond\ 2}}\\
&+\ \cdots\ +\ W_n\ ×\ Dur_{key\ rate_{bond\ n}}\\
\\
&=\ \sum_{i=1}^n W_i\ ×\ Dur_{key\ rate_{bond\ i}}
\end{align}

where:

  • \(W_i\): bond i‘s market value ÷ market value of the portfolio

So, for example, the 5-year key rate duration of a portfolio of bonds is the weighted average of the 5-year key rate durations of the constituent bonds, the 20-year key rate duration of the portfolio is the weighted average of the 20-year key rate durations of the constituent bonds, and so on.

Relationship of (Modified or Effective) Duration and Key Rate Durations

Another characteristic of key rate durations that is expected (or, at least, should be, once you think of it) is that the (modified or effective) duration of a security or a portfolio is the sum of all of its (respectively, modified or effective) key rate durations:

\begin{align}Dur\ &=\ Dur_{key\ rate_1}\ +\ Dur_{key\ rate_2}\ +\ \cdots\ +\ Dur_{key\ rate_k}\ +\cdots\\
\\
&=\ \sum_{i=1}^{\infty}\ Dur_{key\ rate_i}
\end{align}

Note that this is not an infinite sum: eventually the index i will exceed the maturity of the security or portfolio; after that, all of the key rate durations will be zero (because, as we will see, all of the par rates and all of the spot rates at maturities shorter than the key rate maturity are unchanged).

Unusual Behavior

Recalling the link between the par curve and the spot curve, we can determine the effect of key rate changes on bonds of various maturities and with various coupons.  To illustrate these effects, I’ll use a simple example: a 4% flat yield curve with annual (effective) rates from 1 year to 10 years:

Maturity (Years) Par Yield Spot Yield
1.0 4.0% 4.0%
2.0 4.0% 4.0%
3.0 4.0% 4.0%
4.0 4.0% 4.0%
5.0 4.0% 4.0%
6.0 4.0% 4.0%
7.0 4.0% 4.0%
8.0 4.0% 4.0%
9.0 4.0% 4.0%
10.0 4.0% 4.0%

Suppose that we want to compute the 5-year key rate duration of a bond.  To do this, we add 50bp to the 5-year par rate (leaving all of the other par rates unchanged), and compute the effect on the spot rates, then subtract 50bp from the 5-year par rate (again, leaving all of the other par rates unchanged), and compute the effect on the spot rates.

Let’s start by adding 50bp to the 5-year par rate.

The 1-year spot yield is easy: it remains 4.0%.  (Recall that the one-period par rate and the one-period spot rate are equal, and that the 1-year par rate hasn’t changed; only the 5-year par rate has changed.)

The 2-year spot yield is also easy: it, too, remains 4.0%, because the 2-year par yield is unchanged, and the 1-year spot yield is unchanged.  If you want to run through the algebra, it’s:

\begin{align}$1,000\ &=\ \frac{$40.00}{1.04}\ +\ \frac{$1,040.00}{\left(1\ +\ s_2\right)^2}\\
\\
$1,000\ &=\ $38.46\ +\ \frac{$1,040.00}{\left(1\ +\ s_2\right)^2}\\
\\
$961.54\ &=\ \frac{$1,040.00}{\left(1\ +\ s_2\right)^2}\\
\\
\left(1\ +\ s_2\right)^2\ &=\ \frac{$1,040.00}{$961.54}\ =\ 1.0816\\
\\
1\ +\ s_2\ &=\ \sqrt{1.0816}\ =\ 1.0400\\
\\
s_2\ &=\ 4.0\%
\end{align}

The 3-year spot rate and the 4-year spot rate are also easy: they’re both still 4.0%, because their par yields are unchanged, as are all of the spot yields for shorter maturities.  I’ll leave the algebra to you.

As an exciting (!) change of pace, the 5-year spot rate isn’t 4.0% (recall that we’ve added 50bp to the 5-year par rate):

\begin{align}$1,000\ &=\ \frac{$45.00}{1.04}\ +\ \frac{$45.00}{1.04^2}\ +\ \frac{$45.00}{1.04^3}\ +\ \frac{$45.00}{1.04^4}\ +\ \frac{$1,045.00}{\left(1\ +\ s_5\right)^5}\\
\\
$1,000\ &=\ $43.27\ +\ $41.61\ +\ $40.00\ +\ $38.47\ +\ \frac{$1,045.00}{\left(1\ +\ s_5\right)^5}\\
\\
$836.65\ &=\ \frac{$1,045.00}{\left(1\ +\ s_5\right)^5}\\
\\
\left(1\ +\ s_5\right)^5\ &=\ \frac{$1,045.00}{$836.65}\ =\ 1.249022\\
\\
1\ +\ s_5\ &=\ 1.249022^{1/5}\ =\ 1.045476\\
\\
s_5\ &=\ 4.5476\%
\end{align}

This result seems reasonable: the YTM is 4.5%, so we’ll get par ($1,000) if we discount all the cash flows at 4.5%.  Because we’ve discounted the first four payments at 4% (less than 4.5%), we have to discount the final payment at more than 4.5% to average a 4.5% discount for everything.  And because the first four payments are much smaller than the final payment, the difference on the final discount rate should be much smaller than the (50bp) difference on the first four: it’s 4.76bp.

Now comes the really interesting part (!!): the 6-year spot rate.  Let’s do the algebra (recalling that the 6-year par rate hasn’t changed: it’s still 4.0%):

\begin{align}$1,000\ &=\ \frac{$40.00}{1.04}\ +\ \frac{$40.00}{1.04^2}\ +\ \frac{$40.00}{1.04^3}\ +\ \frac{$40.00}{1.04^4}\\
\\
&+\ \frac{$40.00}{1.045476^5}\ +\ \frac{$1,040.00}{\left(1\ +\ s_6\right)^6}\\
\\
$1,000\ &=\ $38.46\ +\ $36.98\ +\ $35.56\ +\ $34.19\ +\ $32.03\ +\ \frac{$1,040.00}{\left(1\ +\ s_6\right)^6}\\
\\
$822.78\ &=\ \frac{$1,040.00}{\left(1\ +\ s_6\right)^6}\\
\\
\left(1\ +\ s_6\right)^6\ &=\ \frac{$1,040.00}{$822.78}\ =\ 1.264009\\
\\
1\ +\ s_6\ &=\ 1.264009^{1/6}\ =\ 1.039820\\
\\
s_6\ &=\ 3.9820\%
\end{align}

Again, this result makes sense: the 5-year spot rate has increased, so the only way that the 6-year par rate can remain unchanged is for the 6-year spot rate to decrease.  And, once again, because the final payment is much larger than the first 5 (coupon only) payments, the decrease should be small compared to the increase in the 5-year spot rate: the 5-year spot rate is 54.76bp higher than the 4% YTM, while the 6-year spot rate is 1.80bp lower than the YTM.

Note how the change in the 5-year key rate leads to some somewhat surprising results.  For example, a 6-year zero-coupon bond will have a slightly higher price (because the 6-year spot rate is lower) when the 5-year key rate is increased; in other words, a 6-year zero-coupon bond will have a negative 5-year key rate duration.  (Remember that when interest rates increase, bond prices normally decrease, and that duration is normally positive.  When the price increases with a rate increase, duration must be negative.)

Continuing in this same tedious manner, we get:

Maturity (Years) Par Yield Spot Yield
1.0 4.0000% 4.0000%
2.0 4.0000% 4.0000%
3.0 4.0000% 4.0000%
4.0 4.0000% 4.0000%
5.0 4.5000% 4.5476%
6.0 4.0000% 3.9820%
7.0 4.0000% 3.9846%
8.0 4.0000% 3.9865%
9.0 4.0000% 3.9880%
10.0 4.0000% 3.9892%

Graphically:

Key Rate Duration - 5-Year - Par vs Spot Up

When we subtract 50bp from the 5-year par rate, we get:

Maturity (Years) Par Yield Spot Yield
1.0 4.0000% 4.0000%
2.0 4.0000% 4.0000%
3.0 4.0000% 4.0000%
4.0 4.0000% 4.0000%
5.0 3.5000% 3.4641%
6.0 4.0000% 4.0182%
7.0 4.0000% 4.0156%
8.0 4.0000% 4.0136%
9.0 4.0000% 4.0121%
10.0 4.0000% 4.0109%

Graphically:

Key Rate Duration - 5-Year - Par vs Spot Down

Key Rate Durations of Various Bonds

Not only does the key rate duration of a bond depend on the bond’s maturity (compared to the maturity of the key rate), it also depends on the bond’s coupon rate compared to its YTM; i.e., it depends on whether the bond is priced at par, at a premium, or at a discount.  Using our 4% flat yield curve, here are the key rate durations for five 5-year, option-free bonds with varying coupon rates, along with the sum of their key rate durations, and their effective durations:

Key Rate Duration (Years), 5-Year Bond
Key Rate Maturity Coupon Rate
0.0% 2.0% 4.0% 6.0% 8.0%
1 Year (0.0385) (0.0174) 0.0000 0.0145 0.0268
2 Years (0.0785) (0.0354) 0.0000 0.0296 0.0547
3 Years (0.1201) (0.0542) 0.0000 0.0453 0.0838
4 Years (0.1633) (0.0737) 0.0000 0.0616 0.1140
5 Years 5.2081 4.7931 4.4519 4.1666 3.9243
6+ Years 0.0000 0.0000 0.0000 0.0000 0.0000
Sum 4.8078 4.6125 4.4519 4.3176 4.2036
DurEff 4.8078 4.6125 4.4519 4.3176 4.2036

So, for example, a 5-year, zero-coupon bond has a 4-year key rate duration of −0.1633 years; if the 4-year par rate increases by 1%, the price of the bond will increase by approximately 0.1633%.  A 5-year, 8% coupon bond has a 3-year key rate duration of 0.0838 years; if the 3-year par rate decreases by 1%, the price of the bond will increase by approximately 0.0838%.

The key ideas to glean from this table are:

  • Par bonds have key rate durations of zero years for any key rate maturity shorter than the bond’s maturity
  • Discount bonds have negative key rate durations for key rate maturities shorter than the bond’s maturity; in particular, zero-coupon bonds have negative key rate durations for key rate maturities shorter than the bond’s maturity
  • Premium bonds have positive key rate durations for key rate maturities shorter than the bond’s maturity
  • All bonds have key rate durations of zero years for any key rate maturity longer than the bond’s maturity
  • The sum of the key rate durations for all key rate maturities equals the bond’s effective duration

Note that these last two points was already covered under Expected Behavior, above.

Misconceptions about Key Rate Durations

The primary misconception about key rate durations is that they correspond to a change in a single spot rate, instead of a change in a single par rate.  To be clear:

  • The key rate duration of a given bond for a given maturity is the ratio of the percentage change in that bond’s price to the change in the par rate at that maturity, when the par rates at all other maturities remain unchanged.
  • When the par rate at a given maturity changes, and the par rates at all other maturities remain unchanged:
    • The spot rates at maturities less than the given maturity will not change
    • The spot rate at the given maturity will change in the same direction as change in the par rate, and by an  amount greater than the change in the par rate
    • The spot rates at maturities greater than the given maturity will change in the opposite direction of the change in the par rate, and by an amount (much) less than the change in the par rate (and the change will be smaller at longer maturities)

Pricing currency forward contracts – determining the appropriate future exchange rate to use – is relatively straightforward; it is based on the risk-free interest rates for the currencies involved, and the no-arbitrage condition (i.e., the forward exchange rate should make arbitrage impossible).  Because the elimination of arbitrage means that the forward exchange rate has to compensate for inequality in the risk-free interest rates – it has to restore equality, or parity – and because the parity is ensured (or covered) by the forward contract, the approach in known as covered interest rate parity (covered IRP, or CIRP).  The formula is:

\[F_{PC/BC}\ =\ S_{PC/BC}\ ×\ \frac{1\ +\ r_{PC}}{1\ +\ r_{BC}}\]

where:

  • \(F_{PC/BC}\): forward (future) exchange rate, quoted as price currency / base currency
  • \(S_{PC/BC}\): spot (current) exchange rate, quoted as price currency / base currency
  • \(r_{PC}\): risk-free rate for the price currency
  • \(r_{BC}\): risk-free rate for the base currency

An easy way to remember which rate goes in the numerator and which rate goes in the denominator is to think of the formula this way:

\begin{align}F_{PC/BC}\ &=\ \frac{PC_{future}}{BC_{future}}\ =\ \frac{PC_{today}\ ×\ \left(1\ +\ r_{PC}\right)}{BC_{today}\ ×\ \left(1\ +\ r_{BC}\right)}\\
\\
&= \frac{PC_{today}}{BC_{today}}\ ×\ \frac{1\ +\ r_{PC}}{1\ +\ r_{BC}}\ =\ S_{PC/BC} × \frac{1\ +\ r_{PC}}{1\ +\ r_{BC}}
\end{align}

Writing it this way shows that the future price currency is today’s price currency grown at the price currency risk-free rate (the numerators) and the future base currency is today’s base currency grown at the base currency risk-free rate (the denominators).

Note that the forward exchange rate is calculated for a certain amount of time t in the future, so the risk-free interest rates have to be the rates applicable for that amount of time.  For example, suppose you are given that the:

  • spot exchange rate for US dollars and British pounds is USD/GBP 1.6453
  • 180-day USD LIBOR rate is 2.4%
  • 180-day GBP LIBOR rate is 3.0%

You are asked to calculate the 180-day forward USD/GBP exchange rate.  The calculation is:

\begin{align}F_{USD/GBP}\ &=\ S_{USD/GBP}\ ×\ \frac{1\ +\ r_{USD}}{1\ +\ r_{GBP}}\\
\\
&=\ 1.6453\ ×\ \frac{1\ +\ 2.4\%\left(\frac{180}{360}\right)}{1\ +\ 3.0\%\left(\frac{180}{360}\right)}\\
\\
&=\ 1.6453\ ×\ \frac{1.012}{1.015}\\
\\
&=\ 1.6404
\end{align}

Thus, the 180-day forward exchange rate is USD/GBP 1.6404.

(Note that the quoted LIBOR rates are annual, nominal rates.)

If, instead, you are given that the:

  • spot exchange rate for US dollars and British pounds is USD/GBP 1.6453
  • effective (annual) 180-day USD risk-free rate is 2.4%
  • effective (annual) 180-day GBP risk-free rate is 3.0%

then the calculation of the 180-day forward USD/GBP exchange rate is:

\begin{align}F_{USD/GBP}\ &=\ S_{USD/GBP} × \frac{1\ +\ r_{USD}}{1\ +\ r_{GBP}}\\
\\
&=\ 1.6453\ ×\ \frac{\left(1\ +\ 2.4\%\right)^{180/365}}{\left(1\ +\ 3.0\%\right)^{180/365}}\\
\\
&=\ 1.6453\ ×\ \frac{1.011764}{1.014684}\\
\\
&=\ 1.6406
\end{align}

Thus, the 180-day forward exchange rate is USD/GBP 1.6406.

An Approximation

As a quick and dirty check, the percentage increase/decrease of the forward rate over the spot rate is approximately equal to the difference between the price currency’s and base currency’s risk-free rates:

\[\frac{F_{PC/BC}}{S_{PC/BC}}\ -\ 1\ ≈\ r_{PC}\ -\ r_{BC}\]

To illustrate this, consider the first example, above:

\[\frac{1.6406}{1.6453}\ -\ 1\ =\ -0.286\% ≈\ -0.300\%\ =\ \ 2.4\%\left(\frac{180}{360}\right)\ -\ 3.0\%\left(\frac{180}{360}\right)\]

Why?  In a Word: Arbitrage

The reason that the forward exchange rate must satisfy the formula given above is that any other forward rate will create an arbitrage opportunity.  The arbitrage transaction is fairly simple:

  • Borrow currency A at its risk-free rate
  • Convert currency A to currency B at the spot exchange rate
  • Enter into a forward contract to exchange currency B for currency A at the forward exchange rate (note: the amount in the forward contract will be current amount of currency B plus the interest you will earn on currency B)
  • Invest currency B at its risk-free rate
  • Wait (until the forward contract matures)
  • Convert currency B (principal plus interest) to currency A at the agreed forward rate
  • Pay off the currency A loan (principal and interest)
  • Enjoy the profit

Note that this series of transactions is risk-free (hence, arbitrage): the money is borrowed (so the arbitrageur has no money at risk), the interest rates are risk-free, and the future exchange rate is locked in at the outset by the forward contract.

To see how this works, imagine that in the first example (LIBOR rates), the quoted forward exchange rate were USD/GBP 1.6420 (higher than the required 1.6406).  In that case, the future GBP would be exchanged for more future USD than the formula specifies; this tells us that we need to start the transaction by borrowing USD (because we’ll end up with more USD than we should: we’re earning a higher interest rate on USD than we should).  If we borrow USD1,000,000, the transactions would look like this:

  • Borrow USD1,000,000 at 2.4% USD LIBOR for 180 days
  • Convert USD1,000,000 to GBP607,792 at USD/GBP 1.6453
  • Enter into a forward contract to convert GBP616,909 (= GBP607,792 × (1 + 3%(180/360))) at USD/GBP 1.6420 in 180 days; the amount is GBP607,792 plus interest
  • Invest GBP607,792 at 3% GBP LIBOR  for 180 days
  • Wait 180 days; the GBP607,792 investment grows to GBP616,909
  • Convert GBP616,909 to USD1,012,964 at USD/GBP 1.6420
  • Pay off the USD loan for USD1,012,000 (= USD1,000,000 × (1 + 2.4%(180/360)))
  • Enjoy a profit of USD964

If, instead, the quoted forward exchange rate were USD/GBP 1.6391 (lower than the required 1.6406), then the future GBP would be exchanged for fewer USD than the formula specifies; this tells us that we need to start the transaction by borrowing GBP (the reverse of the previous case: if we borrowed USD we’d end up with fewer USD than we should, earning a lower interest rate on USD than we should).  If we borrow GBP1,000,000, the transactions would look like this:

  • Borrow GBP1,000,000 at 3.0% GBP LIBOR for 180 days
  • Convert GBP1,000,000 to USD1,645,300 at USD/GBP 1.6453
  • Enter into a forward contract to convert USD1,665,044 (= USD1,645,300 × (1 + 2.4%(180/360))) at USD/GBP 1.6391 in 180 days; the amount is USD1,645,300 plus interest
  • Invest USD1,645,300 at 2.4% USD LIBOR for 180 days
  • Wait 180 days; the USD1,645,300 investment grows to USD1,665,044
  • Convert USD1,665,044 to GBP1,015,828 at USD/GBP 1.6391
  • Pay off the GBP loan for GBP1,015,000 (=GBP1,000,000 × (1 + 3%(180/360)))
  • Enjoy a profit of GBP828