Fixed Income
advancedMacaulay Duration
Builds onBond Price & Yield to Maturity · Weighted Mean (Portfolio Return) — if this page feels steep, start there.
- Macaulay duration — the value-weighted average time (in years) to receive the bond's cash
- the cash flow at time t: coupons each year, coupon + face in the final year
- that cash flow's present value — its 'weight' on the seesaw
- the arrival time of each cash flow, in years
- the bond's price — the sum of all the weights
Reading the notation
Play with it
Duration is the slope of this curve (rescaled). Raise the coupon or shorten maturity and watch the readout fall.
$926
Price
8.02y
Macaulay dur.
7.57
Modified dur.
73
Convexity
| Scenario | Duration-only est. | Actual price | Convexity gap |
|---|---|---|---|
| -200bp | $1067 | $1081 | +$14 |
| -100bp | $997 | $1000 | +$3 |
| +100bp | $856 | $860 | +$3 |
| +200bp | $786 | $799 | +$13 |
The gap is positive in BOTH directions — the curve always bows above its tangent. That bow is convexity.
Why it must be true
Duration answers: when, on average, do I get my money back? Picture the bond's discounted cash flows as weights sitting on a seesaw at times 1, 2, …, n. Macaulay duration is the balance point — a weighted average of the payment times, where each time is weighted by the share of the bond's value arriving then.
Two consequences fall out immediately: a zero-coupon bond's duration IS its maturity (all weight at the end), and bigger coupons pull the balance point earlier, shortening duration. That balance point is also the fulcrum of rate risk — which is why the same number, lightly rescaled, becomes price sensitivity.
The derivation
Each cash flow's present value is ; its share of the price is . The weights sum to 1 (they ARE the price, piece by piece), so the weighted average arrival time is:
It is exactly the weighted-mean formula you already know, with time as the variable and value-shares as the weights.
When to reach for it
You need the average time to the bond's cash flows — as a risk statistic in its own right, or as the stepping stone to modified duration.
Listen for
Back-of-the-envelope
Estimate it in your head first — then the calculator only confirms.
- ≈
Bounds first: duration can never exceed maturity, and equals it only for a zero-coupon bond. For a 3-year coupon bond, the answer lives between about 2.7 and 3.0 — anything at or above 3 is wrong (unless it's a zero).
- ≈
Higher coupon or higher yield → shorter duration (more value arrives early / far cash gets crushed). Use the direction to pick between close choices.
Traps in applying it
- ✗Forgetting the face value in the final cash flow — the last weight is coupon + redemption, and it dominates.
- ✗Weighting by raw cash flows instead of PRESENT VALUES — the discounting is what makes it a value-weighted average.
- ✗Reporting Macaulay when the question asks modified (or vice versa) — they differ by a factor of (1+y).
Limits & criticisms
Duration is a first-order, parallel-shift statistic: it assumes the whole curve moves as one and the move is small. Real curves twist and steepen (key-rate durations exist for that), and for large moves the straight-line answer misses the curvature — which is exactly what convexity corrects. For bonds with options (callables), cash flows themselves change with rates and effective duration must replace this formula.
Where it came from
Frederick Macaulay introduced duration in 1938, buried in a 600-page NBER study of railroad bond yields — and it was ignored for decades. It was rediscovered in the 1950s–70s (Redington's immunization theory, then the volatile-rates era) when portfolio managers suddenly needed a single number for rate risk. By the 1980s duration had become fixed income's most important statistic.
Today every bond fund reports it, liability-driven pension investing is built on matching it, and regulators stress-test banks with it.
On the BA II Plus
Worked example: A 3-year annual-pay bond (face $1,000.00) has a 7% coupon and yields 2.75%. Compute its Macaulay duration.
- 1.70 [÷] 1.0275 [=] [STO] 1PV of year-1 coupon
- 2.70 [÷] 1.0275 [x²] [=] [STO] 2PV of year-2 coupon
- 3.1070 [÷] 1.0275 [yˣ] 3 [=] [STO] 3PV of final coupon + face
- 4.[RCL] 1 [+] 2 [×] [RCL] 2 [+] 3 [×] [RCL] 3 [=]time-weighted PV sum
- 5.[÷] ( [RCL] 1 [+] [RCL] 2 [+] [RCL] 3 ) [=]divide by the price
→ 2.82 years
Where it leads
Master this and the following come almost for free: