Effective Duration vs Modified Duration
Modified duration works beautifully when a bond's cash flows are fixed. The moment they aren't — because of a call or a put — it quietly stops being reliable.
Every duration calculation so far in this series assumed one thing without saying it out loud: that a bond's future cash flows don't change no matter what yield does. For a plain bond, that's true. For a callable or putable bond, it isn't — and that single broken assumption is why a separate measure, effective duration, exists at all.
Modified duration works when cash flows are fixed
Recall Bond B from earlier in this series: ₹1,000 face, 8% annual coupon, 10 years, no embedded options. Its cash flows are known in advance and never change, no matter where yield goes:
| Year | Cash flow |
|---|---|
| 1–9 | ₹80 each |
| 10 | ₹1,080 |
When yield moves, only the present value of those fixed cash flows changes — never the cash flows themselves. That's precisely the environment modified duration is built for, and why it worked cleanly throughout the earlier articles in this series.
Now make Bond B callable
Take that exact bond and add one clause: the issuer may call it after Year 5, at a call price of ₹1,020. Suppose market yields fall substantially — say from 8% down to 5%. A straight bond would keep climbing in value as yields fall, potentially well above ₹1,200. But an issuer facing that same 5% environment can now refinance far more cheaply than the 8% coupon it's currently paying you — so the call becomes attractive, and it may exercise it.
Your expected cash flows have quietly changed from "coupons through Year 10" to "coupons only through Year 5, plus the ₹1,020 call price" — and that shift in the cash-flow schedule itself, not just its discounting, is exactly what modified duration cannot represent.
The key distinction
The effective duration formula
Rather than relying on a closed-form formula that assumes fixed cash flows, effective duration is computed empirically — reprice the bond under a small downward yield shift and a small upward shift, then compare:
where P₀ is today's price, P₋ is the price after yields fall by Δy, and P₊ is the price after yields rise by Δy. Crucially, whatever pricing model produces P₋ and P₊ is allowed to let the bond's cash flows change with yield — which is exactly what a plain closed-form duration formula cannot do.
A concrete worked example, using our callable Bond B
Take the callable version of Bond B — 10-year, 8% coupon, callable after Year 5 at ₹1,020 — currently priced at par (₹1,000) when yield sits at 8%. As a simplified illustration (a full option-pricing model uses interest-rate trees, covered below), price the bond at each yield scenario as the lower of "priced straight to maturity" and "priced to the call," since a rational issuer calls only when it's cheaper for them to do so:
| Yield scenario | Priced to maturity | Priced to call | Bond value (lower of the two) |
|---|---|---|---|
| 7% (yield falls 1%) | ₹1,070.24 | ₹1,055.26 | ₹1,055.26 — call binds |
| 8% (today) | ₹1,000.00 | ₹1,013.61 | ₹1,000.00 — call doesn't bind |
| 9% (yield rises 1%) | ₹935.82 | ₹974.10 | ₹935.82 — call doesn't bind |
At today's 8% yield, calling isn't yet attractive to the issuer, so the straight-bond value (₹1,000.00) governs. But at 7% — just one point lower — the call already becomes the binding scenario: priced-to-call (₹1,055.26) is cheaper for the issuer than continuing to pay 8% coupons all the way to Year 10 (₹1,070.24). The bond's upside is already being capped, even at a fairly modest 1-point rate move. That capping — real upside foregone because of the call — is precisely what shortens effective duration relative to the uncapped, straight-bond figure.
Using these three "bond value" figures in the effective duration formula:
Compare that to the same bond's modified duration ignoring the call entirely: 6.71. The call has already shortened the bond's effective interest-rate sensitivity by roughly three-quarters of a year, even though today's yield (8%) isn't yet in the region where the call binds — simply because there's now a real, nearby chance (visible at just 7%) that the cash flows won't run the full 10 years.
See the straight-bond price at 5% in the calculator →The calculator prices the straight (non-callable) cash-flow schedule; it doesn't yet solve callable-bond scenarios directly, which is why the "priced to call" comparisons above are computed separately.
Duration shortening: the pattern to recognise
What happened to Bond B as rates fell has a name: duration shortening. The chain of logic:
This is one of the core mechanisms behind negative convexity, covered in the earlier convexity article — as the call becomes increasingly likely, the bond's price stops rising the way a normal bond's would, because the market is pricing in the real chance that your high coupon gets cut short.
Legal maturity vs expected life
A callable bond's contract might say "10-year maturity" and mean it literally — but the market doesn't necessarily expect the bond to actually run that long. Two genuinely different concepts:
For option-embedded bonds, expected life is frequently the more economically relevant of the two — which is exactly why effective duration, built around expected behaviour rather than contractual dates, matters so much for this category of bond.
Why interest-rate trees exist
A natural question follows: how does a proper pricing model know, at each future point, whether the issuer would actually exercise the call? This is the role of interest-rate trees — a lattice of possible future short-rate paths, calibrated to match today's observed curve, where at each node the model asks whether calling is economically rational for the issuer at that point, then works backward to today's value. The simplified min-of-two-scenarios approach used above is a reasonable approximation for one clean call date; a proper model handles multiple call dates and the full range of rate paths systematically. This machinery is genuinely more advanced than anything else in this series, and it's the foundation for option-adjusted spread (OAS) — the natural next topic once effective duration feels solid.
Effective convexity, briefly
The same reprice-and-compare logic extends naturally to convexity:
For a callable bond, this frequently comes out negative in the region where the call is economically relevant — something the closed-form convexity formula for a plain bond can never produce, precisely because that formula assumes fixed cash flows throughout.
A wider example: mortgage-backed securities
The reason this concept matters well beyond textbook callable corporate bonds: a mortgage is effectively callable by the homeowner, since they can refinance whenever it's advantageous. Falling rates trigger a wave of refinancing, shortening the pool's expected life exactly the way a bond call does; rising rates discourage refinancing and can stretch expected life out. This produces the same duration-shortening and negative-convexity behaviour seen above, which is why mortgage-backed securities are one of the largest and most consequential real-world applications of effective duration.
Modified vs effective duration, side by side
| Feature | Modified duration | Effective duration |
|---|---|---|
| Cash flows | Fixed | Can change with yield |
| Best suited to | Plain vanilla bonds | Callable, putable, MBS |
| Computed from | Closed-form formula | Repricing under rate shocks |
| Model-dependent | Minimal | Significant |
Common mistakes
The full arc of this series, so far
Bond → present value pricing → yield (coupon, current, YTM) → duration → convexity → the yield curve → embedded options (callable, putable) → effective duration. Every plain-bond tool from earlier in this series still applies; what's changed is recognising exactly when those tools quietly stop being sufficient, and reaching for effective duration and effective convexity instead. That's the real skill this half of the series has been building toward — not new formulas so much as knowing which formula's assumptions actually hold for the bond in front of you.
