The Analyst's Path

Macaulay duration vs modified duration

Macaulay duration is the present-value-weighted average time, in years, until a bond pays its cash flows. Modified duration is Macaulay duration divided by one plus the periodic yield, which turns that time into a price sensitivity: a modified duration of 7.13 means the price falls by about 7.13% for every 1% rise in yield. Modified duration is always slightly smaller than Macaulay, and it assumes the bond's cash flows do not change when the yield does.

3 min readPart of Duration, Convexity & Interest-Rate RiskOpen in course mode

Advertisement

M7.03 defined Macaulay duration as "the weighted-average time to receive a bond's cash flows, each weighted by its share of the bond's present value" and used it once, on a single bond pair, to motivate why long bonds move more. Here is the same idea made fully operational so you can build it for any bond from a blank sheet.

For a bond paying cash flows CFₜ at each of n coupon periods (period length 1/freq years, semi-annual, freq = 2, for a UST or a G-Sec), priced at yield y (periodic rate y/freq):

Price = Σ CFₜ / (1 + y/freq)^t                              (sum over t = 1 .. n)

Macaulay duration (years) = [ Σ (t/freq) × PV(CFₜ) ] / Price
    where PV(CFₜ) = CFₜ / (1 + y/freq)^t

In words: discount every cash flow to the present exactly as you already do to get the price, but instead of only summing the present values, weight each one by how far in the future it sits, in years, sum those weighted values, and divide by the price. The result is a single number in years, literally the present-value-weighted average maturity of every rupee or dollar the bond will ever pay you. A zero-coupon bond pays everything at maturity, so all of its weight sits at one point, and its Macaulay duration equals its maturity exactly. Every coupon-paying bond pulls some weight toward the present via its coupons, so its Macaulay duration is always less than its maturity, the more generous the coupon relative to the yield, the more weight sits early, and the shorter the duration for a given maturity. Worked Example 1 builds this full table, 20 rows deep, on a real-scale 10-year G-Sec; Practice P1 builds a miniature 3-row version by hand.

Advertisement

Modified duration: from a time to a price sensitivity

Macaulay duration is a time. To get the number you actually use to estimate a price move, convert it:

Modified duration = Macaulay duration / (1 + y/freq)

%ΔPrice ≈ −(Modified duration) × Δy

A modified duration of 7.13 means: for every 1% (100bp) the yield rises, the price falls by approximately 7.13%; for every 1bp it rises, the price falls by approximately 0.0713%. Fix two things permanently. First, modified duration is always slightly smaller than Macaulay duration, because of the (1 + y/freq) in the denominator, quoting one when you mean the other silently biases every estimate that follows (Common Mistake 1). Second, and far more consequential: this formula assumes the bond's cash flows themselves do not change when the yield does. That assumption is exactly right for a plain G-Sec or a plain UST, and exactly wrong the instant a call, a put, or a prepayment option is attached, the subject of the effective duration section.

Advertisement

Part of the course

This page is part of Duration, Convexity & Interest-Rate Risk (FI1.02), in Phase 12: Finance Plus, AI and the quant-code track. The module's flashcards and its quiz are in the app.