YTM tells you what you earn if you hold to maturity and reinvest every coupon at that same YTM, an assumption almost nobody's actual holding period satisfies. Most investors sell before maturity, and reinvest coupons at whatever rate happens to be available when each coupon actually arrives, not at the rate that prevailed on the purchase date. The honest measure of what an investor actually earned over a specific holding period, the horizon return, or total return, decomposes cleanly into three sources, and the decomposition is the single most useful diagnostic in this module for understanding why a bond investor's realized outcome diverged from the number quoted on the day they bought it:
- Coupon income: the simple sum of cash coupons actually received during the holding period.
- Reinvestment income: the additional interest-on-interest earned by reinvesting each coupon, from the date received to the horizon date, at whatever rate was actually available at each reinvestment moment.
- Capital gain or loss: the difference between the bond's sale price at the horizon (a fresh present-value calculation at the market yield prevailing then) and the price originally paid.
Advertisement
How do reinvestment risk and price risk offset each other?
Sum the three and you have the total dollar return over the holding period; divide by the purchase price for the holding-period return, and compound to an annual rate for the annualized realized return. Worked Example 4 computes this decomposition twice, side by side, with the same bond under two different rate paths, and the pairing is the entire pedagogical point: when rates fall after purchase, reinvestment income comes in a little lower than it would have at the original yield, but the resale price rises (a capital gain), and when rates rise, the reverse trade-off applies, with higher reinvestment income partly offset by a lower resale price (or an outright capital loss). The two effects, reinvestment risk and price (market) risk, pull in opposite directions from any given rate move, which is the entire reason a portfolio can be constructed to immunize against rate risk by deliberately matching a horizon to a duration where the two effects cancel almost exactly; FI1.02 turns this qualitative offset into the precise, duration-based machinery that makes immunization an engineerable strategy rather than a lucky accident.
That offset has an exact resting point, and it has a name. Hold the bond to a horizon equal to its Macaulay duration and the two effects cancel to first order: whatever a parallel shift in yields takes out of the resale price, it puts back into reinvestment income, and the realised return returns to the yield you bought at. Shorten the horizon and price risk wins, because you are selling a bond with a lot of remaining life at whatever the new yield happens to be. Lengthen it and reinvestment risk wins, because most of your money is coupons being put back to work at the new rate rather than a price you are about to realise.
The quantity that signs the residual exposure is the duration gap:
duration gap = Macaulay duration − investment horizon
A positive gap means the bond outlives your horizon, price risk dominates, and a rise in yields hurts you. A negative gap means your horizon outlives the bond's duration, reinvestment risk dominates, and a rise in yields helps you. A gap of zero is the first-order immunised case. The sign of the gap is the sign of your exposure to a rate rise, and in practice that one sentence is worth more than all the arithmetic that produces it.
What is the formula for the horizon return?
A closed form makes the whole result checkable in a line. If the yield moves once to y₁ immediately after purchase and stays there, every cash flow, whether already received and reinvested or still to come, is worth C_t(1+y₁)^(H−t) at the horizon. Total wealth is therefore W(H) = (1+y₁)^H × P(y₁), where P(y₁) is nothing more than the bond repriced at the new yield on day one, and the realised annual return is
r(H) = (1 + y₁) × [P(y₁)/P₀]^(1/H) − 1
The entire horizon effect lives in that exponent. As H grows, [P(y₁)/P₀]^(1/H) is pulled toward 1, so a one-off price shock is amortised over more years while the new reinvestment rate applies to all of them. Worked Example 7 runs this across three horizons on a single bond and shows the realised return crossing over as the gap changes sign.
What are the limits of matching duration to your horizon?
Two limits keep the result honest. The cancellation is first order only: convexity leaves a small positive residual in both directions, about half a basis point in Worked Example 7's case, so a duration-matched horizon slightly over-earns rather than exactly breaking even. And the result assumes one parallel shift immediately after purchase, so a curve that twists, or that moves in stages while coupons are arriving, is not immunised by a horizon match alone. FI1.02 makes both of those precise and turns the single-bond result into a portfolio strategy.
{
"skill": "Confirming a bond's actual call schedule, call prices, and redemption terms before running any YTC/YTW analysis",
"use": "Ask an AI assistant to summarize or locate the call schedule described in a bond's offering document or prospectus, as a starting pointer — never as the number you compute against.",
"tools": ["Chat assistants with document upload — summarizing a prospectus/offer document you already hold", "SEC EDGAR full-text search (US) — locating the actual indenture/prospectus", "A bond's original offer document / information memorandum (India) via BSE/NSE or the issuer's investor-relations page"],
"prompt": "Here is (or: find) the offering document for <BOND>. List every call date and call price in its redemption schedule, quoting the exact page or clause where each appears, and flag any make-whole call provisions separately from scheduled par/premium calls.",
"verify": "Open the actual prospectus, information memorandum, or trust deed yourself and confirm every call date and call price the assistant reported, plus the day-count and compounding convention used to compute yields on that specific instrument. A single misquoted call price or wrongly-ordered call date silently produces a wrong YTW that looks exactly as confident as a correct one — trace every figure to the primary legal document, never to the assistant's summary of it (Guardrail 1–5, AI0.01, especially #1 Trace and #2 Match).",
"diy": "You must already be able to compute a YTC by hand from a call date and call price — that is Worked Example 3 and the practice set. AI can save you the time of reading a 200-page prospectus for one table; it cannot be trusted to have read it correctly without your own check.",
"market": "IN"
}