Tools › Investing › Bonds › Bond Immunization › Example

Bond immunization: a payment in 7 years matched in present value and duration by a 3-year and a 15-year bond

ToolBond Immunization
SourceIllustrative case computed by the tool with the conditions of Redington, F. M. (1952), "Review of the Principles of Life-Office Valuations", Journal of the Institute of Actuaries, Vol. 78, No. 3, pp. 286–340. No published worked example is reproduced.
LevelUndergraduate

Problem

A payment of 1,000,000 is owed in 7 years. The yield is 5 % a year for every maturity, compounded every six months. Find the mix of a 3-year and a 15-year par bond that has the same present value and the same duration as the payment, the surplus after yields move one point compared with holding the 15-year bond alone, and the trade that restores the match one year later.

Inputs to Enter

  • Payment owed 1,000,000, due in 7 years; yield 5 %
  • Bond A: 3 years, par bond; bond B: 15 years, par bond (coupons every six months)
  • Advanced: bond C 8 years, par; further payments 300,000 in 2 years, 500,000 in 12 years, 400,000 in 20 years; steepening 1 point per 10 years
Open the Bond Immunization tool (loaded with this example)

Answers

  • Payment: present value 1,000,000 / 1.025^14 = 707,727.20; duration 7 / 1.025 = 6.829 years; convexity 7 × 7.5 / 1.025² = 49.97
  • Bonds (price 100 each): durations 2.754 and 10.465 years, convexities 9.21 and 139.54
  • Weights: wA = (10.465 − 6.829) / (10.465 − 2.754) = 0.4715, wB = 0.5285; money 333,702.74 in bond A and 374,024.45 in bond B; convexity of the mix 78.09
  • Surplus after a one-point shift: estimate ½ (78.09 − 49.97) × 707,727.20 × 0.01² = 994.93; exact +915.51 (rise) and +1,082.35 (fall); bond B alone −22,749.44 and +29,105.07; zero-coupon bond 0
  • One year later: durations 1.881, 9.982 and 5.854 years; the unchanged mix has 6.162 years; new wA = 0.5096; 28,345.63 moves from bond B into bond A
  • Advanced (four payments, present value 1,404,922.32, duration 8.190 years): two-bond weights 0.2950 and 0.7050; three-bond weights 0.1679, 0.5832, 0.2489 match convexity 95.57; cash-flow match by linear program costs 1,457,142.86, 52,220.54 more; after the steepening the two-bond mix is short by 9,359.90

Notes

The tool's default inputs are this case; press Submit (Advanced mode for the last line). The bonds and the payment are illustrative and the yield curve is flat. The numbers are the tool's own calculation, checked against an independent numpy and scipy cash-flow model, scipy's linear-programming solver and the Bond Price and Yield library (test_bond_immunization.php).