Learn how to derive zero-coupon spot rates step by step from coupon-bearing bonds, ensuring a no-arbitrage framework alongside practical exam tips and common pitfalls.
Enhance Your Learning:
Bootstrapping the zero-coupon curve might sound a bit fancy, but it’s really just a systematic way to extract individual spot rates from the prices of coupon bonds. Think of it like peeling back layers of an onion—each coupon payment you strip away reveals a new layer of the yield curve. The no-arbitrage principle underpins the entire process, ensuring that each bond’s price perfectly matches the discounted value of its cash flows when you use the appropriate zero-coupon rates.
As you might recall from earlier discussions on the term structure of interest rates (see Section 4.1), spot rates (a.k.a. zero-coupon rates) represent the yield on a bond that pays no coupons and only returns principal at maturity. Real bonds, especially government or high-quality corporate bonds, pay periodic coupons. So the challenge is: how do we isolate the yield for a single maturity from a bond that pays multiple coupons? That’s where bootstrapping comes in. By using the information embedded in bonds of progressively longer maturities, we can sequentially “back out” the zero-coupon rates for all the maturities along the yield curve.
I remember the first time I tried this in a real-world scenario: I was fresh out of school, and I had a stack of government bond prices with different maturities. I almost panicked trying to figure out how to discount everything properly. But once you get the hang of the iterative approach, it becomes second nature—like following a recipe step by step!
No-arbitrage states that you can’t make a riskless profit by exploiting price discrepancies in equivalent cash flows. If a 1-year spot rate has been determined from a 1-year zero-coupon bond, you must use that same rate to discount any 1-year cash flow (like the first coupon on a 2-year bond). This consistency preserves fairness across all bond prices.
You start with the shortest maturity available. Usually, that’s a 1-year coupon bond or a 1-year zero-coupon bond (if it exists). The yield or price of that bond is your window into the 1-year spot rate. Then, to find the 2-year spot rate, you discount the first coupon using the 1-year rate you just found. Subtract that discounted coupon from the total bond price, and the remainder must be discounted at the unknown 2-year rate. Solve for that 2-year rate. Keep progressing until you’ve derived the entire curve for all the maturities you need.
Let’s walk through a simple illustration. Assume you have:
• A 1-year bond with a 5% annual coupon, priced at 99.0 (clean price).
• A 2-year bond with a 6% annual coupon, priced at 98.5 (clean price).
We assume annual compounding for simplicity, and we ignore accrued interest issues in this example.
Identify the 1-year Spot Rate (S₁)
If the 1-year bond has a 5% annual coupon and is priced at 99.0, that means an investor pays 99.0 today and gets 5 (coupon) + 100 (principal) = 105 at the end of the year (just highlighting the total cash flow). So we solve:
99.0 = 105 / (1 + S₁)
Solve for S₁:
S₁ = (105 / 99.0) – 1
Use S₁ to Find the 2-year Spot Rate (S₂)
The price of the 2-year bond (coupon 6%, price 98.5) reflects two future cash flows:
• Year 1 coupon: 6
• Year 2 coupon + principal: 106
The present value of the first coupon is discounted at S₁, while the year-2 flows are discounted at S₂. Thus:
98.5 = 6 / (1 + S₁) + 106 / (1 + S₂)²
You already know S₁ from step 1, so you plug that in, then solve for S₂.
Extend the Method for Longer Maturities
If you had a 3-year bond, you would discount the first coupon with S₁, the second coupon with S₂, and the final coupon and principal with S₃. Each new bond reveals the spot rate corresponding to its final maturity, because you’ve already accounted for earlier cash flow discounting with previously derived spot rates.
If Pₙ is the price of an n-year bond with annual coupon C and face value F, the general model is:
Here, Sₖ is the k-year spot rate. After determining S₁, S₂, …, S₍ₙ₋₁₎ from shorter-maturity bonds, you isolate Sₙ by substituting known rates back into the equation.
Below is a simple Mermaid diagram showing how you might conceptualize bootstrapping from one maturity to the next:
flowchart TB A["Gather Market Prices <br/>of Coupon Bonds"] --> B["Use Shortest Maturity <br/>to Solve S₁"] B --> C["Discount 1-Year Cash Flow <br/>in Next Bond"] C --> D["Isolate S₂ <br/>from 2-Year Bond"] D --> E["Iterate for 3-Year, 4-Year... <br/>to Build Full Zero Curve"] E --> F["Zero Curve Ready? <br/>Use for Valuations"]
Each stage feeds into the next. Notice how the discounting from previously discovered spot rates is used to peel off known cash flows.
Mixing Up Frequencies
If your annual coupon bond is quoted with a semiannual yield, or if market conventions use semiannual compounding, you must carefully align the cash flows to the correct discount intervals. A mismatch can lead to huge discrepancies.
Clean vs. Full Price
Sometimes, the bond price you see already includes accrued interest (dirty price). Other times, it doesn’t (clean price). Always confirm which price you’re using for discounting, because the timing of the coupon payment can significantly change your calculations.
Day Count Conventions
Markets often have different day count standards (30/360, actual/365, actual/360, etc.). An incorrect assumption about day counts affects the discount factors, particularly for short-term maturities.
Under/Over-Adjusting for Credit Risk
Ideally, you bootstrap using default-free or extremely high-quality bonds (like government issues). With corporate bonds, credit spreads can muddy the waters, making it trickier to interpret the “pure” risk-free spot rate.
Missing Partial Credit on Exams
If you’re in an exam scenario and you can’t finish all the steps, show your partial calculations. For instance, if you find S₁ but run out of time for S₂, partial credit may still be awarded if you demonstrate correct methodology.
• Cross-Currency Curve Construction
In multi-currency portfolios, you might need to factor in cross-currency basis swaps, forward FX rates, and distinct yield curves in each currency. The principle is similar, but the math gets more intricate.
• Real-Time Data Updates
Some institutions run an automated system that re-bootstraps spot rates in real time as bond quotes or yields change throughout the day. For a portfolio manager or trader, having an updated zero curve is essential for accurate pricing and risk management.
• Incorporating OIS Rates
With the rise of overnight indexed swap (OIS) rates, many analysts use OIS curves for discounting instead of traditional LIBOR-based curves. Bootstrapping from OIS-based instruments ensures consistency in discounting collateralized derivatives exposures.
Let’s extend a more detailed illustration with hypothetical data:
• 1-year coupon bond: Price = 992.0 (full price), Annual coupon = 60 (6% of 1,000 par).
• 2-year coupon bond: Price = 980.0, Annual coupon = 70 (7% of 1,000 par).
Assume annual compounding again, with par = 1,000.
For the 1-year bond:
992.0 = (60 + 1000) / (1 + S₁)
Solve for S₁:
(60 + 1000) = 1060
S₁ = (1060 / 992.0) – 1 = 0.0685 or 6.85%
For the 2-year bond:
980.0 = 70 / (1 + 0.0685) + (70 + 1000) / (1 + S₂)²
Discount the first coupon using 6.85%:
PV of first coupon = 70 / 1.0685 ≈ 65.50
Then:
980.0 – 65.50 = 914.5
So:
914.5 = 1070 / (1 + S₂)²
(1 + S₂)² = 1070 / 914.5 ≈ 1.1704
1 + S₂ = (1.1704)^(1/2) ≈ 1.0822
S₂ = 1.0822 – 1 = 0.0822 or 8.22%
Now you have the 1-year spot (6.85%) and the 2-year spot (8.22%). You would continue for bonds with 3-year, 4-year maturities, and so on, each time peeling off the discounted value of the earlier coupons.
• Always confirm compounding and day count. This might seem trivial, but it’s often the easiest place to make a slip-up.
• Show your work on exam problems. Even if you get stuck, partial credit is often awarded for correct steps.
• Use the no-arbitrage framework to check if your results are consistent. If your spot rates imply a bond is over- or underpriced, you may have made a calculation error.
• Practice short calculations with a financial calculator or a spreadsheet. Speed and accuracy are critical: you want to avoid letting mechanical errors burn your exam time.
• Keep track of accrued interest if the question specifically references full (dirty) vs. clean prices. The difference can be crucial for correct discounting.
• Bootstrapping: An iterative method to derive spot yields from coupon bond data.
• Spot Rate (Zero-Coupon Rate): Yield on a zero-coupon security that matures at a specific time.
• Discounting: Converting future cash flows to present values using an appropriate rate.
• Clean Price: Bond’s price excluding accrued interest.
• Full (Dirty) Price: Bond’s price including accrued interest.
• No-Arbitrage Principle: Identical cash flows cannot be priced differently in efficient markets.
• CFA Institute Level II Curriculum, “Term Structure and Yield Curve Analysis: Bootstrapping Zero-Coupon Yields.”
• Fabozzi, F.: “Fixed Income Mathematics: Analytical & Statistical Techniques.”
• Bloomberg and Refinitiv Eikon terminals have built-in bootstrapping functions. Take time to explore these if you have terminal access.
Important Notice: FinancialAnalystGuide.com provides supplemental CFA study materials, including mock exams, sample exam questions, and other practice resources to aid your exam preparation. These resources are not affiliated with or endorsed by the CFA Institute. CFA® and Chartered Financial Analyst® are registered trademarks owned exclusively by CFA Institute. Our content is independent, and we do not guarantee exam success. CFA Institute does not endorse, promote, or warrant the accuracy or quality of our products.