Bootstrap the zero curve from par swap rates, discount each cash flow at its own zero rate plus a single spread, and solve: why it differs from the I-spread, and when the gap matters.
The Z-spread is the single spread that, added to every point of the zero-coupon swap curve, discounts a bond's cash flows back to its market price. You bootstrap zero rates from the par swap curve, then solve for the spread by trial or with Goal Seek. On an illustrative seven-year euro bond priced at 99.765 with a 3.875 per cent coupon, the Z-spread is 118.9 bp, against an I-spread of 118.0 bp: 0.9 bp apart on a normal upward-sloping curve, and further apart when the curve is steep or the bond trades away from par.
Worked in full in Capital Markets by Julian R. Sterling, with every figure reproduced in a free workbook.See the book on Amazon →
The I-spread compares one yield with one swap rate. The Z-spread compares every cash flow with the rate for its own date. The two agree exactly only when the curve is flat, which is why dealer runs and relative value screens quote both, and why a Z-spread quoted without its curve is as incomplete as an I-spread quoted without its maturity.
| Input | Value |
|---|---|
| Coupon, paid annually | 3.875% |
| Price per 100 of face | 99.765 |
| Yield to maturity | 3.914% |
| Seven-year mid-swap rate | 2.734% |
| Issue size | EUR 500,000,000 |
| DV01 of the issue | EUR 300,624 per bp |
Swap rates are par rates: each is the fixed coupon that makes a swap of that maturity worth zero. To get the discount factor for year n, take the par rate for year n, subtract the coupons already discounted at the earlier factors, and divide by one plus the rate.
DFn = (1 − sn × (DF1 + … + DFn−1)) / (1 + sn)
Zero rate zn = DFn−1/n − 1
In Excel, with par rates in B2:B8 and discount factors building in C2:C8: =(1-B3*SUM($C$2:C2))/(1+B3), filled down from C3, with C2 as =1/(1+B2).
| Year | Par swap rate | Discount factor | Zero rate | Zero + 118.9 bp | Cash flow | Present value |
|---|---|---|---|---|---|---|
| 1 | 2.150% | 0.97895 | 2.150% | 3.339% | 3.875 | 3.750 |
| 2 | 2.240% | 0.95664 | 2.241% | 3.430% | 3.875 | 3.622 |
| 3 | 2.340% | 0.93288 | 2.343% | 3.532% | 3.875 | 3.492 |
| 4 | 2.440% | 0.90786 | 2.446% | 3.635% | 3.875 | 3.359 |
| 5 | 2.540% | 0.88169 | 2.550% | 3.740% | 3.875 | 3.225 |
| 6 | 2.640% | 0.85447 | 2.656% | 3.845% | 3.875 | 3.090 |
| 7 | 2.734% | 0.82669 | 2.756% | 3.945% | 103.875 | 79.227 |
| Total | 99.765 |
On an upward-sloping curve the zero rates sit above the par rates from year two onwards, because a par bond's early coupons are discounted at the lower short rates and the final zero has to make up the difference. The seven-year zero is 2.756 per cent against a par rate of 2.734.
Price = Σ CFt / (1 + zt + Z)t
99.765 = 3.875 / (1.03339) + 3.875 / (1.03430)2 + … + 103.875 / (1.03945)7 ⇒ Z = 118.9 bp
Excel has no Z-spread function. Put a trial spread in one cell, compute each present value as =CF/(1+Zero+$Z$1)^t, sum them, and use Goal Seek to set the sum to the price by changing the spread cell.
The I-spread on the same bond is the yield less the seven-year swap: 3.914 less 2.734 is 118.0 bp. The Z-spread is 0.9 bp wider. At EUR 300,624 a basis point, that is EUR 274,892 of price on the issue: small, but enough to change a relative value call between two bonds of the same issuer.
| Measure | What it compares | Spread, bp |
|---|---|---|
| I-spread | Yield less the seven-year par swap rate | 118.0 |
| Z-spread | Each cash flow against its own zero rate | 118.9 |
| Asset swap spread, par-par | (PV on the swap curve less price) / annuity | 117.8 |
| Yield less seven-year zero rate | A shortcut that mixes two bases | 115.8 |
The asset swap spread is the floating margin earned by buying the bond and paying away its fixed coupons. Discounted on the swap curve the bond is worth 107.233; the 7.468 gap to the price, spread over an annuity of 6.3392, gives 117.8 bp.
| Curve | One-year rate | Seven-year zero | I-spread | Z-spread | Z less I |
|---|---|---|---|---|---|
| Flat | 2.734% | 2.734% | 118.0 | 118.0 | 0.0 |
| Base | 2.150% | 2.756% | 118.0 | 118.9 | 0.9 |
| Steeper | 1.250% | 2.791% | 118.0 | 120.4 | 2.3 |
| Inverted | 3.500% | 2.705% | 118.0 | 116.8 | −1.2 |
The I-spread cannot see the curve: it is 118.0 in every row. The Z-spread moves with the slope, 2.3 bp wider on the steep curve, worth EUR 706,101 on the issue, and 1.2 bp tighter when the curve inverts.
| Coupon | Price | I-spread | Z-spread | Z less I |
|---|---|---|---|---|
| 1.250% | 83.959 | 118.0 | 116.9 | −1.1 |
| 3.875% | 99.765 | 118.0 | 118.9 | 0.9 |
| 6.000% | 112.560 | 118.0 | 120.3 | 2.3 |
This is where the Z-spread earns its keep. A low-coupon bond bought at a discount has more of its value in the final payment, discounted at the highest zero rate, so it needs less spread to reach its price; a high-coupon bond has more value in early coupons discounted at low short rates. Two bonds of one issuer at the same yield and I-spread can sit 3.4 bp apart on a Z-spread basis, and the Z-spread is the one that treats their cash flows consistently.
Bootstrap the zero curve, add one spread to every zero rate, and solve for the spread that returns the price: 118.9 bp here, against an I-spread of 118.0. Use the Z-spread when comparing bonds with different coupons or prices, and quote the curve with it. What one basis point is worth on the issue is worked in how to calculate the DV01 of a bond, and how the choice of interpolation on the issuer's own curve moves the fair value spread is rebuilt in the free workbooks for this book.
The I-spread subtracts one interpolated swap rate from the bond's yield. The Z-spread discounts each cash flow at the zero rate for its own date plus one constant spread. On a flat curve they are equal; on the illustrative upward-sloping euro curve a seven-year bond at 99.765 shows 118.0 bp of I-spread and 118.9 bp of Z-spread.
No. The par-par asset swap spread is the floating margin earned by buying the bond and swapping its coupons: the bond's value on the swap curve less its price, divided by the swap annuity. On the illustrative bond that is 7.468 over 6.3392, or 117.8 bp, against a Z-spread of 118.9 bp. The gap grows as the price moves away from par.
Bootstrap discount factors from the par swap rates, convert them to zero rates, then discount each cash flow as CF/(1+zero+Z)^t with Z in a single cell. Sum the present values and use Goal Seek to set the sum equal to the price by changing Z. On the illustrative curve the solution is 118.9 bp for a price of 99.765.
This article is one calculation from Capital Markets. The book takes the same case from first principles to the decision, chapter by chapter, and every figure it prints is a live formula in the free companion workbooks.
Get the book on Amazon →Free companion files
Also on Amazon UK · Amazon Germany · Amazon France · Amazon Canada
Reading guide: corporate finance, valuation and markets → · All 1340 articles →
If this book helped, or didn’t, a few lines on Amazon are worth more than they look: they are what the next reader goes on. Write a review. The workbook stays free either way.