Curve Construction & Bond Math
Where discount factors come from, why a bullet and a barbell with identical duration behave differently, and how a bond future decides which bond it wants.
Everything discounts to a discount factor
- A yield is a summary. A discount factor is the actual object: the price today of one unit of currency paid at a future date. Every bond, swap and derivative price is a weighted sum of them.
- Quoted market rates are almost never the rates you can discount with. Par yields and swap rates are averages over a whole schedule of payments; discounting needs the rate for each date.
- Bootstrapping is the process of extracting one from the other — solving date by date, using each newly found factor to unlock the next.
Bootstrapping, step by step
A par bond by definition prices to 100. Write that out for an n-year annual bond and only one unknown remains — the final discount factor:
- Start at one year, where the answer is immediate. Each solved factor feeds the next equation. This is the whole algorithm.
- The zero rate follows from the factor: \(z_n = d_n^{-1/n} - 1\).
- The forward rate between two dates is the ratio of their factors — the same relationship the forward-rate calculator uses, seen from the discount side.
- Real desks add far more: multiple curves for discounting and forecasting, collateral currency, interpolation choice and turn-of-year effects. The arithmetic below is the skeleton all of that hangs on.
Interactive: bootstrap zero rates from par yields
Four annual par yields in; four zero rates, a discount factor and a forward out.
- 1-year zero
- —
- 2-year zero
- —
- 3-year zero
- —
- 4-year zero
- —
- 4-year discount factor
- —
- Implied 3y→4y forward
- —
Note what an upward-sloping par curve does: every zero rate sits above its par yield, and the forwards sit above both. That is not a forecast of rising rates — it is arithmetic. Flatten the four inputs to the same number and watch zeros, par yields and forwards collapse onto each other.
Duration is not a risk report
Two portfolios can share a duration and behave completely differently, because duration compresses an entire schedule of cash flows into one number. Convexity captures the second-order difference; curve shape captures the rest.
- For a zero-coupon bond both terms are exact: \(D = T/(1+y)\) and \(C = T(T+1)/(1+y)^2\).
- Convexity grows faster than duration with maturity. Splitting a position into a short and a very long leg buys convexity at the same duration — the barbell trade.
- Convexity is not free. The barbell typically gives up yield, and it takes a large parallel move to recover that. It also carries a completely different curve exposure, which is where it usually wins or loses.
Interactive: bullet vs. barbell at equal duration
- Barbell weights
- —
- Modified duration
- —
- Bullet convexity
- —
- Barbell convexity
- —
- Convexity edge
- —
- On a 100 bp parallel move
- —
- If only the long end sells off
- —
The two bottom lines are the trade. Parallel moves favour the barbell — its convexity is genuinely larger. A steepening does not: the barbell's long leg carries the damage while the bullet sits in the middle of the curve. Own a barbell and you are long convexity and short the steepener, whether or not you meant to be.
Bond futures and the cheapest to deliver
- A bond future does not reference one bond. The short may deliver any bond from a defined basket, and the exchange equalises them with a conversion factor — the bond's price at a notional standard yield.
- The equalisation is deliberately imperfect. At yields away from the notional coupon, one bond is systematically cheapest to deliver, and the future tracks that bond.
- The short therefore holds a free switch option: if the CTD changes, they deliver something else. The future's price includes the value of that option, which is why it trades slightly below full carry.
- Rule of thumb: above the notional coupon yield, the CTD is the longest-duration bond in the basket; below it, the shortest. A basket that straddles the notional yield has an unstable CTD and an expensive delivery option.
Interactive: invoice price, basis and carry
- Invoice price
- —
- Gross basis
- —
- Coupon income
- —
- Repo financing
- —
- Net basis
- —
- Reading
- —
Carry is coupon income minus financing. When the curve is inverted — repo above the coupon — carry turns negative and the basis widens for reasons that have nothing to do with the bond being cheap. Raise the repo rate above the coupon and watch it happen. See the bond future and repo pages.
Where curve models actually break
- Interpolation is a modelling choice with real consequences. Linear-on-zeros, linear-on-forwards and splines all reprice the input instruments exactly and disagree everywhere in between — which is precisely where an off-the-run bond or an odd-dated swap has to be valued.
- Multiple curves are now standard. Since 2008, discounting follows the collateral (an overnight rate) while forecasting follows the reference index. The single-curve world in most textbooks stopped existing.
- Bad inputs propagate forward. Bootstrapping is sequential: an error at three years contaminates every factor beyond it. Curve builders spend most of their effort on input selection, not on the mathematics.
- The curve is a fitted object, not an observation. Two desks with the same market data and different conventions produce different curves, and both are defensible.
Test yourself: five questions
Five questions on this page — checked entirely on your device, nothing stored or sent. Wrong answers come with explanations, and everything you need is above. For education only.
Information and education only. These are simplified teaching implementations — annual periods, no day-count conventions, no multi-curve discounting, no credit or funding adjustments. They will not reproduce a dealer's price and are not a valuation you can rely on.