Portfolio Management Pathway · Liability-Driven and Index-Based Strategies
Immunization and Duration Matching for CFA Level III
Updated 9 October 2026 · Fact-checked
Immunization protects the funding of liabilities by matching the interest rate exposure of assets to that of liabilities. For a single liability, set the asset portfolio's Macaulay duration equal to the liability date, with asset PV at least liability PV. For multiple liabilities, also keep asset cash flow dispersion wider than liability dispersion, then rebalance.
Understand Immunization and Duration Matching
A liability-driven investor must pay known cash outflows in the future, such as pension benefits or an insurance payout. If rates change, the value of the bonds that fund those payments changes, and so does the value of the liabilities. Immunization sets the bond portfolio up so that rate changes affect assets and liabilities by about the same amount. The funded position then stays roughly intact.
For a single liability, rates rising or falling creates two opposing effects. Higher rates cut the bond price but raise the return from reinvesting coupons. Lower rates do the opposite. When the portfolio's Macaulay duration equals the time to the liability, these two effects offset. This is classic immunization. The asset PV must also be at least the PV of the liability, otherwise you start underfunded.
For multiple liabilities, matching the horizon is not enough. You match the PV of assets to liabilities and the portfolio duration to the liability duration (equivalently, money duration or basis point value). You also need asset convexity at least as large as liability convexity. As a general guide, wider dispersion of asset cash flows over time than of liability cash flows implies higher asset convexity. But the range of maturities alone does not prove it, so verify the convexity (or the dispersion measure) directly rather than inferring it from the range. Then a parallel shift in rates leaves assets at least as valuable as liabilities.
Immunization is not risk free. Structural risk arises because yields do not shift in parallel, so a duration match can still leave a gap. A bullet portfolio concentrated near the liability date has less structural risk than a barbell, but a barbell can satisfy the multiple liability conditions more easily. Key rate duration matching reduces this risk by matching exposure at several maturities. Duration also drifts as time passes and yields move, so you must rebalance. Cash flow matching removes most of this risk but costs more and limits the bond choice.
Key rules to remember
- Portfolio Macaulay duration
- D_portfolio = Σ (w_i × D_i)
- Weights w_i are market value weights. Use this to solve for the mix of two bonds that hits a target duration.
- Two-bond weight for a target duration
- w_short × D_short + (1 − w_short) × D_long = D_target
- Solve for w_short. The target must lie between the two durations.
- Single liability immunization conditions
- Asset Macaulay duration = liability horizon; PV(assets) ≥ PV(liability)
- Classic immunization for a parallel yield shift. Zero-coupon bonds maturing on the liability date remove reinvestment risk.
- Multiple liability immunization conditions
- PV(assets) ≥ PV(liabilities); duration(assets) = duration(liabilities); dispersion/convexity(assets) ≥ liabilities
- The third condition means asset cash flows are more dispersed than liability cash flows. Wider dispersion generally implies higher asset convexity, but verify convexity or the dispersion measure directly rather than inferring it from the range of maturities.
- Money duration (BPV) matching
- BPV(assets) = BPV(liabilities), where BPV ≈ modified duration × PV × 0.0001
- Use when asset and liability values differ. It ensures the same currency change per basis point.
- Key rate duration match
- KRD_assets(k) = KRD_liabilities(k) for each key maturity k, with PV matched
- Controls exposure to non-parallel shifts, twists and steepening at specified maturities.
- Liability PV (single payment)
- PV = Liability ÷ (1 + y)^t
- Discount at the stated yield. Asset PV should be at least this amount.
How to solve Immunization and Duration Matching questions
Use this order for any immunization question, from a basic duration match to a risk critique.
- 1Identify the liabilities: amounts, dates, and whether there is one or several. Note the discount yield given.
- 2Compute the PV of the liability or liabilities. If asked, compute the liability duration as the PV-weighted average of payment times.
- 3Check funding: asset PV must be at least liability PV. If not, state that immunization cannot be fully achieved without more assets.
- 4Set the target: for one liability, asset Macaulay duration equals the horizon. For several, match portfolio duration (or BPV) to the liability duration.
- 5Solve for portfolio weights using market value weights and the duration equation. Then check that the target lies between the bond durations.
- 6For multiple liabilities, test the convexity or dispersion condition. Asset durations spanning a wider range than liability dates is a guide, but compute or verify convexity (or the dispersion measure) directly.
- 7Name the remaining risks: non-parallel shifts (structural risk), duration drift, credit and call risk. Propose key rate duration matching and periodic rebalancing.
- 8Show the number in the requested form and state the conclusion in one line, using the command word.
Quickest way: Weight solve and three-condition check
When to use it: Use when you are given two bond durations and a liability date, or asked whether a portfolio immunizes multiple liabilities.
- Write the target duration (horizon, or PV-weighted liability duration).
- Set w × D1 + (1 − w) × D2 = target and solve for w in one line.
- Multiply weights by liability PV to get currency amounts.
- Tick the three conditions: PV, duration, and asset convexity or dispersion at least that of liabilities (verify it, do not assume it from the maturity range).
- If the question asks about risk, answer with structural risk and key rate duration, plus rebalancing.
Common mistakes in Immunization and Duration Matching
Matching asset duration to the liability maturity using modified duration instead of Macaulay duration for classic single liability immunization.
Both durations appear in the curriculum, and modified duration is used for price sensitivity.
Fix: For the horizon condition, use Macaulay duration equal to the time to the liability. Use modified duration or BPV when matching price sensitivity.
Forgetting the PV condition and treating duration match alone as enough.
The duration equation feels like the whole solution.
Fix: Always check that asset PV is at least liability PV. A duration match on an underfunded portfolio leaves a shortfall.
Saying multiple liability immunization needs only a single duration match.
Students carry the single liability rule over.
Fix: Add the dispersion condition: asset cash flows must be more dispersed than liability cash flows, so asset convexity is at least liability convexity. Wider dispersion is a guide, so verify convexity or the dispersion measure directly.
Claiming immunization removes all interest rate risk.
The word suggests full protection.
Fix: Protection holds against parallel shifts, assuming rebalancing. Non-parallel shifts create structural risk. Key rate duration matching reduces it, but does not remove it.
Never rebalancing, or rebalancing only when time passes.
Students assume a matched duration stays matched.
Fix: Durations of assets and liabilities both change with time and yield moves, and not necessarily by the same amount. Rebalance on a schedule or when the mismatch passes a tolerance, weighing transaction costs.
Using book values or equal weights when averaging durations.
Weights are skipped to save time.
Fix: Use market value weights for portfolio duration. For liability duration, use PV weights.
Worked examples
Example 1
A fund must pay ₹5,00,00,000 in 7 years. The discount yield is 5% a year, compounded annually. It can invest in Bond A (Macaulay duration 4.0 years) and Bond B (Macaulay duration 11.0 years). Show how to immunize the liability with these two bonds, and give the rupee amount in each.
Show the solution
- PV of liability = 5,00,00,000 ÷ 1.05^7. Since 1.05^7 = 1.40710, the PV is about ₹3,55,34,000 (roughly ₹3.55 crore). All amounts below are approximate.
- Target duration = 7.0 years, equal to the liability date.
- Let w be the weight in A: 4w + 11(1 − w) = 7. So 11 − 7w = 7, giving w = 4/7 = 57.14%.
- Weight in B = 3/7 = 42.86%.
- Amount in A = 3,55,34,000 × 4/7 ≈ ₹2.03 crore. Amount in B = 3,55,34,000 × 3/7 ≈ ₹1.52 crore.
- Check: ₹2.03 crore + ₹1.52 crore ≈ ₹3.55 crore. PV of assets equals PV of the liability, so the funding condition is met.
- Comment: the target of 7 lies between 4 and 11, so the solution is feasible. Rebalance as durations drift. A barbell like this has more structural risk than a bullet near year 7.
Answer: Invest about ₹2.03 crore in Bond A and about ₹1.52 crore in Bond B (57.14% and 42.86%), giving a Macaulay duration of 7 years and asset PV of about ₹3.55 crore.
Example 2
A plan has two liabilities, each with a present value of ₹1,00,00,000, due in 2 years and 8 years. It holds zero-coupon bonds maturing in 2 years and 10 years with total PV of ₹2,00,00,000. (a) Find the liability duration. (b) Find the weights that match it. (c) Check the three multiple liability conditions and name the main remaining risk.
Show the solution
- (a) Liability duration = (1,00,00,000 × 2 + 1,00,00,000 × 8) ÷ 2,00,00,000 = 5.0 years.
- (b) Zero-coupon duration equals maturity. Let w be the weight in the 10-year bond: 10w + 2(1 − w) = 5. So 2 + 8w = 5, giving w = 3/8 = 37.5%.
- 10-year bond amount = 2,00,00,000 × 3/8 = ₹75,00,000. 2-year bond amount = ₹1,25,00,000.
- (c) PV condition: assets ₹2,00,00,000 equal liabilities ₹2,00,00,000, so it is met.
- Duration condition: assets 5.0 years equal liabilities 5.0 years, so it is met.
- Dispersion condition: measure the PV-weighted variance of cash flow timing around the 5.0 year duration. Assets (weights 0.625 at 2 years and 0.375 at 10 years): 0.625 × (2 − 5)² + 0.375 × (10 − 5)² = 5.625 + 9.375 = 15.0. Liabilities (weights 0.5 at 2 years and 0.5 at 8 years): 0.5 × (2 − 5)² + 0.5 × (8 − 5)² = 4.5 + 4.5 = 9.0. Asset dispersion of 15.0 exceeds liability dispersion of 9.0, so the condition is met.
- Bracketing check: the shortest asset matures at 2 years, on the first liability date, and the longest matures at 10 years, after the last liability at 8 years. The asset maturities bracket the liability dates, as the multiple liability conditions require.
- Remaining risk: structural risk from non-parallel yield shifts, such as a steepening that hits the 8-year liability differently from the 10-year bond. Mitigate by matching key rate durations and rebalancing.
Answer: Liability duration is 5.0 years. Hold 37.5% (₹75,00,000) in the 10-year zero and 62.5% (₹1,25,00,000) in the 2-year zero. The PV, duration and dispersion conditions are all met (asset dispersion 15.0 against liability dispersion 9.0), and the asset maturities bracket the liability dates. The main residual risk is structural risk from non-parallel shifts.
Exam tips
- Read the command word. For "calculate", type the number clearly with its unit. For "justify", give the condition and the reason in one or two short sentences.
- For multiple liability questions, state all three conditions in your answer. Examiners look for PV, duration and the dispersion or convexity requirement.
- Wider dispersion of asset cash flows generally implies higher asset convexity, and a barbell can meet the condition more easily. Do not assume it from the range of maturities alone. Verify convexity or the dispersion measure.
- When asked about risks, name structural risk (non-parallel shifts) and then say what reduces it: key rate duration matching, a more bullet-like portfolio, or cash flow matching.
- For item set questions, check funding first. Some stems show assets below liability PV, which makes the correct choice "cannot fully immunize".
- Tie the answer to the client: a plan with a strict funding need favours cash flow matching or tight tolerances, while a plan with more tolerance can accept immunization with periodic rebalancing.
Immunization and Duration Matching in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
Immunization and Duration Matching: frequently asked questions
What is the difference between single and multiple liability immunization?
Single liability immunization needs the asset Macaulay duration to equal the liability date and PV of assets to be at least PV of the liability. Multiple liability immunization also needs the duration of assets to equal the liability duration, and assets must have a wider spread of cash flows than liabilities. The extra condition protects against parallel shifts when there is more than one payment.
Why does immunization still carry risk?
Interest rates rarely move in parallel, so a duration match can leave a gap when the curve twists or steepens. This is structural risk. Duration drift over time and credit or call risk in the bonds also reduce the match. Key rate duration matching and rebalancing help but cannot remove these risks.
How does key rate duration matching help?
It matches the sensitivity of assets and liabilities to a rate move at each key maturity, not only in total. The portfolio then responds in a similar way to a twist or a change in slope. It needs more bonds and monitoring than a simple duration match.
Is higher convexity always better in an immunized portfolio?
Not always. Asset convexity should be at least as large as liability convexity for parallel shifts. But very high convexity means widely spread cash flows, such as a barbell, and that increases structural risk. You balance the two.