Quant Memo
Advanced

Bootstrapping A CDS Curve

The same staircase trick used to build a discount curve from swap rates also builds a default-probability curve from CDS spreads quoted at several maturities — solve the nearest unknown hazard rate first, then use it to unlock the next.

Prerequisites: Hazard Rates And Survival Probabilities, Bootstrapping A Curve From Market Instruments

CDS contracts trade at several standard maturities — 1, 3, 5, 7, 10 years — each quoted with its own spread. A single spread alone can't tell you the hazard rate for every year up to that maturity individually; it only pins down some blend of hazard rates across the whole period. To recover a full term structure of hazard rates, year by year, you need the same recursive trick used for interest-rate curves: solve the nearest unknown hazard rate using only the spread quotes and hazard rates already found for shorter maturities, then move one maturity further out and repeat.

The bootstrap equation

A CDS is fair (worth zero at inception) when the expected present value of the premium leg equals the expected present value of the protection (default payment) leg:

siτiD(ti)Q(ti)=(1R)iD(ti)[Q(ti1)Q(ti)],s \sum_i \tau_i\, D(t_i)\, Q(t_i) = (1-R) \sum_i D(t_i)\, \big[Q(t_{i-1}) - Q(t_i)\big],

where ss is the quoted CDS spread, D(ti)D(t_i) the discount factor, Q(ti)Q(t_i) the survival probability to time tit_i, and RR the assumed recovery rate on default. In plain English: the left side is what the protection buyer pays (spread times survival-weighted time, since payments stop once default happens), and the right side is what the protection seller expects to pay out (the loss given default, times the probability of defaulting in each period). Everything is known except the hazard rates buried inside the newest Q(ti)Q(t_i) term, which is solved for using the previously-bootstrapped QQ's at shorter maturities.

Worked example 1 — the first segment

A 1-year CDS quotes s1=100s_1 = 100bp with recovery R=40%R = 40\%, and assume flat discounting at D(1)0.97D(1) \approx 0.97 for simplicity, with the hazard rate assumed constant over [0,1][0,1]. A commonly used simplified (mid-point) approximation for the first, single-period segment is s1(1R)×h1s_1 \approx (1-R) \times h_1, giving h1=s1/(1R)=0.01/0.60=0.0167h_1 = s_1 / (1-R) = 0.01 / 0.60 = 0.0167, about 1.67% per year. Survival to 1 year: Q(1)=e0.0167=0.9834Q(1) = e^{-0.0167} = 0.9834.

Worked example 2 — the second segment builds on the first

A 2-year CDS quotes s2=140s_2 = 140bp, same recovery. The new unknown is h2h_2, the hazard rate applying only to the second year (years 1 to 2), with h1=1.67%h_1 = 1.67\% and Q(1)=0.9834Q(1) = 0.9834 already fixed from the previous step. Using the same simplified per-period logic extended to two periods, the second spread has to compensate for both years' expected loss blended together: approximately s2×[τ1Q(1)+τ2Q(2)](1R)[Q(0)Q(1)+Q(1)Q(2)]s_2 \times [\tau_1 Q(1) + \tau_2 Q(2)] \approx (1-R)[Q(0)-Q(1) + Q(1) - Q(2)]. Solving this for Q(2)Q(2) with s2=140s_2 = 140bp typically yields something like Q(2)0.9629Q(2) \approx 0.9629, implying an average 2-year hazard higher than the first year's, i.e. h22.7%h_2 \approx 2.7\% for year two alone — steeper than h1h_1, consistent with the market pricing in rising default risk further out, which is exactly what an upward-sloping CDS curve (s1<s2s_1 < s_2) should imply once bootstrapped.

Yield curve
0%2%4%3m1y3y7y20y
2y 2.95%10y 4.00%10y−2y 1.04%upward sloping

The same staircase logic from a discount curve applies here — each maturity's hazard rate is solved using only the survival probabilities already pinned down by shorter CDS spreads, moving strictly left to right.

maturity h₁ h₂ h₃ h₄
Each period's hazard rate is a separate step, solved one at a time from a single spread quote plus everything already found to its left — an upward-sloping spread curve typically bootstraps into rising forward hazard rates.

What this means in practice

A bootstrapped hazard curve feeds directly into pricing bespoke credit products — CDS with off-market maturities, first-to-default baskets, or the tranches of a CDO — anything that needs default probabilities at dates the market doesn't quote directly. The recovery rate assumption RR is not observed from CDS spreads alone; it has to be assumed (commonly 40% for senior unsecured debt) or taken from recovery swaps, and changing it noticeably shifts the bootstrapped hazard rates even holding spreads fixed.

Recovery rate and hazard rate are not separately identifiable from CDS spreads alone — only the product (1R)×h(1-R) \times h is pinned down by the market. Assuming a different recovery rate produces a different hazard curve from the exact same quoted spreads, so two desks using different recovery conventions will disagree on implied default probabilities even while agreeing perfectly on CDS prices.

Bootstrapping a CDS curve applies the same one-directional, step-by-step logic as bootstrapping a discount curve: solve the nearest unknown hazard rate from the newest CDS spread and the survival probabilities already found, then move one maturity further out.

Related concepts

Practice in interviews

Further reading

  • O'Kane, Modelling Single-name and Multi-name Credit Derivatives (Ch. 4)
ShareTwitterLinkedIn