How do you bootstrap spot rates from a par yield curve? I keep getting the wrong numbers.
I understand the concept that the par curve gives yields on coupon-paying bonds trading at par, and we need to extract zero-coupon (spot) rates from them. But every time I try to do it by hand, my Year 3 spot rate is off. Can someone show the exact bootstrapping process with a 3-year example? Also, how do you then get forward rates from the spot curve?
Bootstrapping is mechanical once you see the pattern. Let me walk through it carefully.
The Setup
Suppose the par yield curve for annual-pay government bonds is:
| Maturity | Par Yield |
|---|---|
| 1 year | 4.00% |
| 2 year | 4.40% |
| 3 year | 4.70% |
Each par yield means a bond with that coupon rate trades at exactly 100 (par). We need to find the zero-coupon spot rates z_1, z_2, z_3.
Step 1: 1-Year Spot Rate
The 1-year par bond has a single cash flow: 104 at year-end.
100 = 104 / (1 + z_1)
z_1 = 4.00%
The 1-year spot rate equals the 1-year par yield. Always.
Step 2: 2-Year Spot Rate
The 2-year par bond pays a 4.40 coupon at Year 1 and 104.40 at Year 2:
100 = 4.40 / (1.04) + 104.40 / (1 + z_2)^2
100 = 4.2308 + 104.40 / (1 + z_2)^2
95.7692 = 104.40 / (1 + z_2)^2
(1 + z_2)^2 = 104.40 / 95.7692 = 1.09013
z_2 = (1.09013)^{0.5} - 1 = 4.4049%
Notice z_2 (4.4049%) is slightly above the par yield (4.40%) — this is because the upward-sloping curve means earlier cash flows are discounted at a lower rate.
Step 3: 3-Year Spot Rate
The 3-year par bond pays 4.70 at Year 1, 4.70 at Year 2, and 104.70 at Year 3:
100 = 4.70 / (1.04) + 4.70 / (1.044049)^2 + 104.70 / (1 + z_3)^3
100 = 4.5192 + 4.3113 + 104.70 / (1 + z_3)^3
91.1695 = 104.70 / (1 + z_3)^3
(1 + z_3)^3 = 104.70 / 91.1695 = 1.14839
z_3 = (1.14839)^{1/3} - 1 = 4.7199%
Summary of Bootstrapped Spot Rates
| Maturity | Par Yield | Spot Rate |
|---|---|---|
| 1 year | 4.00% | 4.0000% |
| 2 year | 4.40% | 4.4049% |
| 3 year | 4.70% | 4.7199% |
Deriving Forward Rates
The 1-year forward rate one year from now, f(1,1):
(1 + z_2)^2 = (1 + z_1)(1 + f(1,1))
(1.044049)^2 = (1.04)(1 + f(1,1))
1.09013 = 1.04 x (1 + f(1,1))
f(1,1) = 1.09013 / 1.04 - 1 = 4.8125%
The 1-year forward rate two years from now, f(2,1):
(1 + z_3)^3 = (1 + z_2)^2 x (1 + f(2,1))
1.14839 = 1.09013 x (1 + f(2,1))
f(2,1) = 1.14839 / 1.09013 - 1 = 5.3462%
Common Mistakes
- Rounding intermediate spot rates too early — carry at least 4 decimal places through the chain.
- Forgetting that each step requires all previously computed spot rates, not just the par yields.
For more fixed income term structure problems and interactive calculators, visit AcadiFi's CFA Level II Fixed Income section.
Master Level II with our CFA Course
107 lessons · 200+ hours· Expert instruction
Related Questions
How do I map a CFA Ethics vignette to the right standard?
When does a duty to clients override pressure from an employer?
Do conflicts have to be disclosed before making a recommendation?
Why do CFA Ethics answers focus so much on the action taken?
What does a high-water mark actually do in a hedge fund fee calculation?
Join the Discussion
Ask questions and get expert answers.