The Analyst's Path

Swap curve bootstrapping

Swap curve bootstrapping builds a discount curve from par swap rates instead of par bond yields. A vanilla swap has zero value at inception, so the present value of its fixed leg must equal that of its floating leg, and that makes a par swap curve bootstrap with the identical algorithm as a par bond curve. You interpolate par swap rates between the standard maturities and solve for each discount factor in turn.

3 min readPart of Term Structure: Spot, Forward, Bootstrapping & Swap CurvesOpen in course mode

Advertisement

A vanilla fixed-for-floating interest rate swap (pay fixed, receive a floating reference rate (SOFR in the US, MIBOR/OIS in India)) has zero value to either counterparty at inception: nobody pays anything upfront, so the present value of the fixed leg must exactly equal the present value of the floating leg. That single fact is enough to prove something you should not simply take on faith: a par swap curve bootstraps with the identical algorithm as a par bond curve.

Here is the proof. A floating-rate note that pays exactly the reference index (no spread) and redeems at par, discounted at a curve consistent with that same index, is worth exactly its notional N at each reset date. That is a standard identity of floating-rate instruments, and at those dates it is exact rather than an approximation. That means the present value of just its coupon strip (the note's value minus its final discounted redemption) must equal N × (1 − DF(maturity)). A swap's floating leg is exactly that coupon strip (no notional exchange), so its present value is N × (1 − DF(m)). The reset-date qualifier is doing real work and is worth stating plainly. Between resets the identity does not hold, because the coupon has already been fixed off the old rate while the market has moved on, so the note trades away from par by roughly the accrued difference between that fixed rate and the current curve over the remaining stub. FI1.05 section 4.5 works the stub arithmetic in full, and it is the reason a floater carries a little duration rather than none. None of that touches the proof, because a swap's floating leg is valued at a reset date, which is precisely where the identity is exact. Setting the fixed leg's present value equal to it:

swap_rate/2 × Σ DF(t) × N = N × (1 − DF(m))

Advertisement

How does the swap equation match the par bond equation?

Divide by N and this is algebraically the same equation as the par-bond condition from the bootstrap section, with swap_rate standing exactly where the bond's coupon rate stood. The sequential solve is unchanged, line up par swap rates at 1, 2, 3, 5, 7, 10 years, interpolate the gaps, and walk out the identical recursion. (This single-curve treatment, the swap's own reference index doubling as its discount curve, is precisely what modern SOFR-OIS and equivalent INR-OIS swaps do; the older LIBOR-era practice of a separate discounting curve and forecasting curve is a historical complication this module deliberately sets aside, appropriately, as an FI1.04-and-beyond refinement.) Worked Examples 4 and 5 run this bootstrap on a synthetic SOFR curve and a synthetic INR OIS/MIBOR curve and confirm every input swap reprices to par exactly, the same way the bond curves did.

Advertisement

Part of the course

This page is part of Term Structure: Spot, Forward, Bootstrapping & Swap Curves (FI1.03), in Phase 12: Finance Plus, AI and the quant-code track. The module's flashcards and its quiz are in the app.