Zero Rates and Bond Pricing

A trader asks you to price a 2-year bond that pays a coupon every six months. Which rate do you discount it at? Not one rate — four. The coupon arriving in six months is worth less than face value for a different reason than the coupon arriving in two years, and lumping them together under a single "the interest rate" throws away real information sitting in the market. Continuing from the rates we can choose from, this lesson introduces the object practitioners actually price against: the zero (spot) rate, one rate per maturity, and shows a coupon bond is nothing more than a small portfolio of these.

The zero rate: one number per maturity

The T-year zero-coupon rate (or spot rate) R(T) is the (continuously-compounded) rate of return on an investment that pays nothing until it matures at T, when it pays everything at once. A dollar invested today at the zero rate for maturity T grows to

1 \cdot e^{R(T)\,T} \quad\text{— equivalently, a payment of \$1 at time } T \text{ is worth } e^{-R(T)T} \text{ today.}

Plotting R(T) against T gives the zero curve (or term structure of interest rates) — usually upward-sloping (longer money costs more, on average), occasionally flat or inverted when the market expects rates to fall.

A coupon bond pays many times, not once — but each of those payments is, on its own, exactly the kind of single lump sum a zero rate prices. So a coupon bond is simply a bundle of zero-coupon bonds, one per cash flow, and its price is the sum of each cash flow discounted at the zero rate for that cash flow's own maturity:

B = \sum_{i=1}^{n} C_i\, e^{-R(t_i)\,t_i}.

This is the single most important equation in the module — everything from bootstrapping to duration is built on the idea that every cash flow gets discounted at its own rate, not one blended rate for the whole bond.

Worked example: pricing a bond off a given zero curve

Suppose the market hands you these zero rates (continuously compounded):

MaturityZero rate R(t)
6 months5.00%
1 year5.30%
18 months5.50%
2 years5.60%

Price a 2-year bond with a 6% coupon, face value $100, paid semiannually — so $3 arrives every six months, plus the $100 face at the end. Discount each payment at the zero rate for its own maturity:

Time t_iCash flow C_iRate R(t_i)Discount factor e^{-R t_i}PV
0.535.00%0.97532.926
1.035.30%0.94842.845
1.535.50%0.92082.762
2.01035.60%0.894092.087

Summing the last column: B = 2.926 + 2.845 + 2.762 + 92.087 \approx \$100.62. The bond trades above par because its 6% coupon is a touch richer than the curve's own rates for most of its life.

The par yield. The par yield for a maturity is the coupon rate that would make a bond of that maturity trade at exactly 100 — the "fair" coupon given today's curve. Setting the price equal to 100 and solving for the (semiannual) coupon c in our example:

100 = \tfrac{c}{2}\big(0.9753+0.9484+0.9208\big) + \big(100+\tfrac{c}{2}\big)(0.8940) \;\Longrightarrow\; c \approx 5.67\%.

A 5.67%-coupon 2-year bond would trade at par on this curve — close to, but not identical to, the 2-year zero rate of 5.60%, because the par yield is a blend of all four points on the curve, weighted by how much cash arrives at each one.

A bond's quoted yield to maturity (YTM) is the single flat rate that, used for every cash flow, reproduces its market price — mathematically tidy, and the number your broker actually shows you. So why bother with a whole curve?

Because YTM is a property of one bond, not of the market. Two bonds with the same maturity but different coupons will, in general, have different YTMs, even though both are being priced off the very same underlying zero curve — a low-coupon bond returns more of its value at the far end (which the curve usually prices at a higher rate), so its YTM sits closer to the long zero rate than a high-coupon bond's does. YTM also silently assumes every coupon can be reinvested at that same flat rate until maturity, which is rarely true. The zero curve has neither problem: it is a single, coupon-independent description of "what money costs, by when it's needed," and every bond, swap or forward in this module is priced from it directly.

A very common slip: take a bond's quoted YTM and use that single number to discount its own cash flows, then call the result "the price implied by the zero curve." It isn't — you have only recovered the price you started with, and learned nothing about the curve. The zero-rate method requires discounting each cash flow at the rate for its own maturity, read off the curve, not at any single summary yield. And as in the previous lesson: make sure every rate you pull off a screen is converted to continuous compounding before it goes anywhere near e^{-Rt} — a semiannual quote plugged in raw will misprice the bond by a small but very real amount.

Seeing the curve

Here is a typical upward-sloping zero curve, together with the par-yield curve it implies at each maturity (computed the same way as the worked example, one maturity at a time). The two track each other closely but are not identical — the par curve is a running blend of everything the zero curve has done up to that maturity, so it lags a little.