Debt Capital Markets, Corporate Bond Indentures & Liability Management
Corporate Bond Make-Whole Call Price & Par Floor Formula
Calculate Investment-Grade Corporate Bond Semiannual Make-Whole Discount Rate (Benchmark Treasury + Spread), Present Value of Remaining Coupons and Principal, Contractual MAX(Par, PV) Redemption Price ($), and Make-Whole Premium %.
Enforce the 100%-of-Par contractual floor when modeling Make-Whole bond redemptions!
Investment-grade corporate bonds typically allow early redemption at a Make-Whole Call Price equal to the GREATER of (a) 100% of Par Face Value or (b) the Present Value of remaining semiannual coupon payments plus principal discounted at a matched-maturity US Treasury yield plus a tight Make-Whole Spread (typically +15 to +50 bps—much tighter than the issuer’s original credit spread)! Because the discount rate strips out most credit risk, calling a bond when Treasury yields are low or unchanged costs a steep premium; conversely, if Treasury yields surge above Coupon - MakeWhole_Spread, raw discounted PV falls below $1,000—where naive models forget the indenture’s MAX(Par, Raw_PV) floor and falsely assume the issuer can force holders out below par!
Verify on a $1,000 Face-Value Note—Par_Face_Value = $1,000.00 (B2), Annual_Coupon_Rate = 0.07 (7.00% paid semiannually = $35.00/half-year, B3), Remaining_Semiannual_Periods = 6 (3.0 years to maturity/par-call, B4), Matched_Treasury_Yield = 0.035 (3.50%, B5), and MakeWhole_Spread = 0.005 (50 bps, B6 -> Semiannual Make-Whole Discount Rate = (3.50% + 0.50%)/2 = 0.0200 or 2.00% in E2): Raw Make-Whole PV equals $1,084.02 (E3), Indenture Make-Whole Call Price is MAX(1000, 1084.02) = $1,084.02 (E4), and Make-Whole Call Premium is 0.0840 (8.40% over par in E5)!
| Make-Whole Redemption Metric ($1,000 Par, 7% Coupon, 6 Semi-Periods, T+50 bps) | Formula | Verified Output |
|---|---|---|
| Semiannual Make-Whole Rate r_s | (Treasury_Yield + MakeWhole_Spread) / 2 | 0.0200 (2.00% / half-yr) |
| Raw Discounted Make-Whole PV ($) | PV(Coupons @ r_s) + Par * (1 + r_s)^-N | $1,084.02 ($973.79 @ 7.5% Tsy) |
| Indenture Call Price ($) | MAX(Par_Face_Value, Raw_MakeWhole_PV) | $1,084.02 ($1,000.00 Par Floor) |
| Make-Whole Premium % of Par | (Indenture_Call_Price - Par) / Par | 0.0840 (0.0000 @ 7.5% Tsy) |
Semiannual Make-Whole Call Price with Contractual Par Floor Formula
Validate Par > 0, Coupon_Rate >= 0, Remaining_Periods >= 1, Treasury_Yield > 0, and MakeWhole_Spread >= 0!
=LET(pr_f, B2, cp_r, B3, np_s, B4, ts_y, B5, mw_s, B6, IF(OR(pr_f <= 0, cp_r < 0, np_s < 1, ts_y <= 0, mw_s < 0), "Invalid Make-Whole Bond Input", LET(rs_h, (ts_y + mw_s) / 2, cp_h, (pr_f * cp_r) / 2, pv_r, cp_h * ((1 - ((1 + rs_h) ^ -np_s)) / rs_h) + pr_f * ((1 + rs_h) ^ -np_s), ROUND(MAX(pr_f, pv_r), 2))))Rising-Rate Par-Floor Protection Check (Set Benchmark Treasury = 7.50%)
Spike Benchmark_Treasury_Yield B5 to 0.075 (8.00% make-whole discount yield > 7.00% coupon): Raw Discounted PV E3 drops to $973.79, proving why the indenture’s MAX(1000, Raw_PV) floor clamps E4 at $1,000.00 (0% premium in E5; in practice, the issuer would buy bonds in the open market near ~$974 rather than calling at $1,000)!
=IF(ISTEXT(E4), E4, ROUND((E4 - B2) / B2, 4))Try the example
Use the original values or change them to test your understanding.