Financial
Odd Stub-Period Bond Clean Price and Implied Yield (ODDFPRICE & ODDLPRICE Valuation)
Value bonds with irregular short or long final/initial coupon periods using money-market stub discounting, accrued-interest deduction, and inverse stub yield.
Pricing irregular stub coupon periods transparently
Bonds issued or maturing off their regular semiannual cycle carry an odd short or long coupon stub. For an odd last-coupon bond (Excel's ODDLPRICE), total maturity cash equals Redemption + 100 * (Coupon_Rate / Frequency) * Stub_Coupon_Factor, discounted over the remaining fraction of a normal coupon period at simple money-market rate 1 + (Yield / Frequency) * Remaining_Period_Factor.
Subtracting accrued interest 100 * (Coupon_Rate / Frequency) * Accrued_Period_Factor from dirty value produces the quoted clean price per $100 par, and inverting the same equation solves directly for ODDLYIELD.
| Bond Stub Parameter | Input Cell | Example Value | Financial Meaning |
|---|---|---|---|
| Redemption per $100 par | B2 | 100 | Principal repaid at maturity |
| Annual Coupon Rate / Freq | B3 / B4 | 6% / 2 | $3.00 per standard half-year |
| Stub Coupon Factor (DFC/E) | B6 | 0.75 | $2.25 odd final coupon |
| Remaining Stub (DSC/E) | B7 | 0.50 | Half of a semiannual period to maturity |
| Accrued Stub (A/E) | B8 | 0.25 | $0.75 accrued interest -> Clean = 100.2377 |
Odd Last-Coupon Clean Price Formula (ODDLPRICE)
Discounts maturity principal plus stub coupon at simple stub yield and deducts accrued interest per $100 face value.
=LET(std_cpn, 100 * (B3 / B4), mat_cf, B2 + std_cpn * B6, disc_fac, 1 + (B5 / B4) * B7, accr_int, std_cpn * B8, ROUND((mat_cf / disc_fac) - accr_int, 4))Implied Odd-Stub Annual Yield Formula (ODDLYIELD)
Inverts the clean stub price P_clean (or dirty price) to recover the exact annualized money-market yield.
=LET(std_cpn, 100 * (B3 / B4), mat_cf, B2 + std_cpn * B6, accr_int, std_cpn * B8, dirty_p, 100.2377 + accr_int, ROUND(((mat_cf / dirty_p) - 1) * (B4 / B7), 4))Try the example
Use the original values or change them to test your understanding.