Skip to content

CFA Level I · CFA Level I Exam

Interest Rate Risk and Return: formula sheet

Full chapter guide

Key formulas

Bond price
PV = PMT ÷ (1+r) + PMT ÷ (1+r)² + … + (PMT + FV) ÷ (1+r)^N
r is the yield per period, N the number of periods, PMT the coupon per period. For semiannual bonds, halve the annual yield and coupon and double the years.
Coupon-yield rule
Coupon rate = yield → price = par; coupon rate < yield → discount; coupon rate > yield → premium
Holds when the yield is measured on the same periodic basis as the coupon.
Inverse relationship
Yield ↑ → price ↓; yield ↓ → price ↑
For option-free bonds the curve is convex. Callable bonds can show negative convexity at low yields.
Convexity effect
Price gain for a yield fall of Δy > price loss for a yield rise of Δy
Holds for an option-free bond with positive convexity.
Price change estimate
%ΔPrice ≈ −(Modified duration × ΔYield) + ½ × Convexity × (ΔYield)²
The first term is the straight-line estimate. The second is the convexity adjustment, which is positive for option-free bonds.
Sensitivity rules (all else equal)
Lower coupon → more sensitive; longer maturity → more sensitive; lower yield level → more sensitive
Treat maturity as a general rule, not a law for every bond.
Sources of return
Total return = coupons received + reinvestment income + (sale price − purchase price)
If the bond is held to maturity, the sale price is par and the capital gain or loss is par minus purchase price.
Future value of reinvested coupons
FV of coupons = C × [((1 + r)^n − 1) ÷ r]
C = coupon per period, r = reinvestment rate per period, n = number of coupons received up to the horizon. This includes the coupons themselves plus interest on them.
Sale price at horizon
Price = Σ [C ÷ (1 + y)^t] + FV ÷ (1 + y)^N
Use the yield y expected at the horizon and N = periods remaining after the sale date, not the original maturity.
Total future value at horizon
Total FV = FV of coupons + sale price
Accrued interest at sale, if any, belongs in the total. Exam questions usually avoid it by selling on a coupon date.
Horizon yield per period
Horizon yield = (Total FV ÷ Purchase price)^(1 ÷ n) − 1
n = number of periods held. For semiannual periods, the bond-equivalent annual rate is this value × 2 unless the question asks for an effective annual rate.
Duration matching rule
Horizon = Macaulay duration → price risk ≈ reinvestment risk
This holds approximately for a single parallel yield shift right after purchase. It is not exact.
Macaulay duration
MacDur = Σ [t × PV(CFt)] ÷ Price, then ÷ periods per year
t is the period number. Divide by the number of periods per year to express the result in years.
Closed-form Macaulay duration (fixed-rate bond, at a coupon date)
MacDur = (1 + r) ÷ r − [(1 + r) + N × (c − r)] ÷ [c × ((1 + r)^N − 1) + r]
r is the yield per period, c is the coupon rate per period, N is the number of periods. The result is in periods.
Modified duration
ModDur = MacDur ÷ (1 + YTM ÷ m)
m is the number of coupon periods per year. Use the annual MacDur with the annual YTM and its periodicity.
Price change using modified duration
%ΔPrice ≈ −ModDur × ΔYTM
Enter ΔYTM as a decimal, so 50 bps is 0.005. Valid for small changes only.
Approximate modified duration
ApproxModDur = (PV₋ − PV₊) ÷ (2 × PV₀ × ΔYTM)
PV₋ is the price when YTM falls by ΔYTM and PV₊ is the price when YTM rises by ΔYTM.
Effective duration
EffDur = (PV₋ − PV₊) ÷ (2 × PV₀ × ΔCurve)
The benchmark curve is shifted in parallel by ΔCurve. The bond's cash flows may change in each scenario because of embedded options.
Zero-coupon bond
MacDur = time to maturity
A quick check for any answer you compute.
Money duration (MoneyDur)
MoneyDur = Annual modified duration × Full price of the position
Use the full price (flat price + accrued interest) times the par amount held, divided by 100 if the price is quoted per 100 par. The result is in the currency of the bond.
Approximate price change using money duration
ΔPV ≈ −MoneyDur × Δy
Enter Δy as a decimal (25 bps = 0.0025). The sign is negative: yields up, value down. Add the convexity term for large moves.
PVBP from money duration
PVBP ≈ MoneyDur × 0.0001
This is the currency change for a 1 bp yield change.
PVBP from repricing
PVBP = (PV₋ − PV₊) ÷ 2
PV₋ is the value at yield minus 1 bp, PV₊ at yield plus 1 bp. Do not forget to divide by 2.
Portfolio PVBP
PVBP(portfolio) = Σ PVBP of each holding
PVBP and money duration add across holdings, assuming a parallel yield shift. Modified durations combine as value-weighted averages.
Duration plus convexity price change
%ΔPV ≈ −(ModDur × Δy) + ½ × Convexity × (Δy)²
Δy is in decimals (50 bp = 0.005). Use effective duration and effective convexity for bonds with embedded options.
Approximate (effective) duration
(PV− − PV+) ÷ (2 × PV0 × Δcurve)
PV− is the price when the yield decreases by Δcurve. PV+ is the price when the yield increases by Δcurve.
Approximate (effective) convexity
(PV− + PV+ − 2 × PV0) ÷ (Δcurve² × PV0)
Use the same Δcurve for both prices. PV− is the price when the yield decreases and PV+ is the price when it increases. A negative result signals negative convexity, typical of a callable bond near its call price.
Portfolio duration (weighted average)
D_p = w₁D₁ + w₂D₂ + … + wₙDₙ
Weights are each bond's market value ÷ total portfolio market value, not par value. Use the same type of duration (e.g. modified or effective) for every bond.
Approximate price change
%ΔPV ≈ −D × ΔYield
D is modified (or effective) duration. Valid for small, parallel yield changes. Add a convexity adjustment for larger moves.
Portfolio money duration
Money duration_p = Σ (money duration of each bond)
Money durations are in currency units and are measured for the same yield change, so they simply add up. Dividing the summed money duration by total portfolio market value gives the portfolio modified duration.
Weights
wᵢ = MVᵢ ÷ Σ MV
Weights must sum to 1 (100%).
Macaulay duration
MacDur = Σ [t × PV(CF_t)] ÷ Σ PV(CF_t)
t is the time of each cash flow in years. The denominator is the bond's full price (PV of all cash flows).
Modified duration
ModDur = MacDur ÷ (1 + y/m)
y is the annual yield and m is the number of periods per year. Use it for the approximate percentage price change.
Approximate price change
%ΔPrice ≈ −ModDur × Δy
Accurate for small yield changes. Ignores convexity.
Duration gap
Duration gap = MacDur − Investment horizon
Positive: price risk dominates. Negative: reinvestment risk dominates. Zero: risks roughly offset.
Immunization rule
MacDur of assets ≈ Investment horizon (liability date)
Also requires PV of assets ≥ PV of the liability. Holds for a one-time parallel yield shift; rebalancing is needed over time.
Zero-coupon bond duration
MacDur = Maturity
A zero-coupon bond held to maturity has no reinvestment risk.

Quick revision

  • Bond price and yield move in opposite directions.
  • For equal yield changes, a fall in yield raises price by more than a rise in yield lowers it, because of convexity.
  • Lower coupon and longer maturity generally mean higher price sensitivity.
  • Modified duration = Macaulay duration ÷ (1 + y/m), where m is the number of periods per year.
  • Price change ≈ −ModDur × ΔYield, then add ½ × Convexity × (ΔYield)².
  • Effective duration is used when cash flows depend on yield, such as callable bonds.
  • Money duration = annual modified duration × full price of the position (its market value), expressed in currency units. Always use the full price, including accrued interest.
  • PVBP is the price change for a one basis point yield change. PVBP ≈ money duration × 0.0001.
  • Portfolio duration is the market-value weighted average of bond durations, and it assumes a parallel shift in yields.
  • Yield curve risk arises when rates do not shift in parallel; duration alone misses it.
  • Price risk and reinvestment risk approximately offset when the bond's Macaulay duration (not modified duration) equals the investment horizon. This holds for a single instantaneous parallel yield shift right after purchase, and for a bond with fixed cash flows (no default or embedded options). Non-parallel shifts or later yield changes break the offset, so the match needs rebalancing over time.
  • Positive convexity helps the investor: it adds to price gains and cushions losses.

Common mistakes

  • Treating the price-yield link as a straight line Fix: Remember that equal yield changes do not give equal price changes. The price rise from a yield fall is larger than the price fall from a yield rise.
  • Using the annual yield with semiannual coupons Fix: Divide the annual yield and coupon by the number of periods per year, and multiply the years by the same number, before entering N, I/Y and PMT.
  • Treating the YTM as the expected return on a bond that is sold before maturity. Fix: YTM equals the realized return only if the bond is held to maturity and coupons are reinvested at the YTM. Otherwise compute horizon yield from the cash flows.
  • Pricing the bond at the horizon using the original maturity. Fix: Subtract the holding period from the original term. Use only the remaining periods and the horizon yield.
  • Using Macaulay duration to estimate price change Fix: Price change needs modified duration (or effective duration). Macaulay duration is a time measure. Divide by (1 + YTM ÷ m) first.
  • Dividing by (1 + YTM) when the bond pays semiannually Fix: Use (1 + YTM ÷ m), where m is the number of periods per year. For example, a 6% YTM paid semiannually gives 1.03.
  • Forgetting to divide by 2 when computing PVBP from the two repriced values Fix: Remember that PVBP = (PV₋ − PV₊) ÷ 2. The two prices are 1 bp on each side of the starting yield.
  • Using the flat price instead of the full price for money duration Fix: Use the full price (flat + accrued) whenever accrued interest is given. Money duration measures the value you actually hold.
  • Leaving out the ½ in the convexity adjustment Fix: Write the full formula first: −ModDur × Δy + ½ × Convexity × (Δy)². The ½ comes from the second-order term of the price expansion.
  • Using Δy in percent instead of decimals Fix: Convert to decimals before squaring. 100 bp = 0.01, so (Δy)² = 0.0001.

Exam tips

  • Read the direction of the yield change before anything else. Many questions are solved by the inverse rule alone.
  • Watch for the 'same size' wording. If it compares a yield rise with a fall, the answer usually uses convexity.
  • For price calculations, check whether coupons are annual or semiannual and adjust N, I/Y and PMT. Clear the calculator memory first.
  • Sort answers by premium, discount or par before computing. This often eliminates two options in seconds.
  • There is no penalty for wrong answers, so always pick the most reasonable option even if time is short.
  • Questions usually give you the reinvestment rate and the horizon yield. Your job is to put them into the right place: reinvestment rate for the coupons, horizon yield for the sale price.
  • Expect conceptual questions on which risk dominates. Compare the horizon with Macaulay duration before you read the options.
  • With three options and no penalty, always answer. Sanity-check first: if the bond is sold at a gain, the horizon yield should be above the coupon yield when reinvestment rates are close to it.