FRM Part I · FRM Exam Part I
Bond Yields and Return Calculations: formula sheet
Key formulas
- Price using spot rates (annual compounding)
- P = Σ C ÷ (1 + zₜ)ᵗ + F ÷ (1 + zₙ)ⁿ
- zₜ is the spot rate for time t. C is the coupon, F the face value. Each cash flow gets its own rate.
- Price using yield (semiannual)
- P = Σ (c/2 × F) ÷ (1 + y/2)ᵏ + F ÷ (1 + y/2)²ⁿ, k = 1 to 2n
- Divide the annual yield and coupon by 2. The number of periods is 2 × years.
- Zero-coupon bond price
- P = F ÷ (1 + z)ᵀ
- A single cash flow. Discount factor d(T) = 1 ÷ (1 + z)ᵀ.
- Accrued interest
- AI = Coupon per period × (days since last coupon ÷ days in coupon period)
- The day count convention sets how both day numbers are counted.
- Clean and dirty price
- Dirty price = Clean price + Accrued interest
- Rearrange to get the clean price from a computed full price.
- Par, premium, discount rule
- Coupon = yield → par; coupon > yield → premium; coupon < yield → discount
- Holds on a coupon date. A quick check on your answer.
- Discount factor from spot rate
- DF(t) = 1 ÷ (1 + s_t)^t
- Annual compounding. s_t is the t-year spot rate as a decimal.
- Spot rate from discount factor
- s_t = (1 ÷ DF(t))^(1/t) − 1
- Use the y^x key on your calculator with 1/t as the exponent.
- Par bond condition
- 1 = c × [DF(1) + DF(2) + … + DF(n)] + DF(n)
- c is the annual par coupon rate per 1 of face value. The bond prices at par.
- Bootstrapping the last discount factor
- DF(n) = [1 − c_n × (DF(1) + … + DF(n−1))] ÷ (1 + c_n)
- Needs the earlier discount factors. Work from the shortest maturity upward.
- Forward rate from spot rates
- (1 + s_T)^T = (1 + s_t)^t × (1 + f(t,T))^(T−t)
- f(t,T) is the forward rate from time t to T. Rearrange to solve for f.
- One-period forward from discount factors
- f(t, t+1) = DF(t) ÷ DF(t+1) − 1
- Fastest route once you have discount factors.
- Par yield from discount factors
- c_n = (1 − DF(n)) ÷ [DF(1) + … + DF(n)]
- Annual coupons. The reverse of bootstrapping.
- Bond price from YTM
- P = Σ C/(1 + y/m)^t + F/(1 + y/m)^N
- m = payments per year, t counts periods, N = total periods, C = coupon per period, F = face value. Solve for y with a financial calculator.
- Current yield
- Current yield = annual coupon ÷ market price
- Uses the clean market price. Ignores capital gain or loss and time value.
- Bond-equivalent yield
- BEY = 2 × semiannual yield
- Simple annualisation, no compounding within the year.
- Effective annual rate
- EAR = (1 + r/m)^m − 1
- For a BEY, use m = 2 and r = BEY.
- Continuous compounding
- EAR = e^r − 1
- r is the continuously compounded rate.
- Discrete to continuous
- r_c = m × ln(1 + r_m/m)
- Converts a rate with m periods per year to its continuous equivalent.
- Continuous to discrete
- r_m = m × (e^(r_c/m) − 1)
- Converts a continuous rate to a rate compounded m times a year.
- Future value
- FV = PV × (1 + r/m)^(mT) or PV × e^(rT)
- T is in years.
- Holding period return (bond)
- HPR = (P1 − P0 + C) ÷ P0
- P0 = purchase price, P1 = ending price, C = income received (coupons, plus reinvestment income if included). Use the full price (clean plus accrued) consistently.
- Multi-period HPR
- HPR = (1 + R1)(1 + R2)…(1 + Rn) − 1
- Compounds the period returns. Do not add them.
- Arithmetic mean return
- R_A = (R1 + R2 + … + Rn) ÷ n
- Best estimate of the expected return for a single future period. Overstates compound growth when returns vary.
- Geometric mean return
- R_G = [(1 + R1)(1 + R2)…(1 + Rn)]^(1/n) − 1
- The compound average per period. R_G ≤ R_A.
- Log return
- r = ln(P1 ÷ P0) = ln(1 + R)
- Multi-period log return is the sum of single-period log returns. Include income by using total value instead of price if required.
- Simple from log return
- R = e^r − 1
- Converts a log return back to a simple return.
- Realized compound yield (annual)
- y = (Ending value ÷ P0)^(1/years) − 1
- Ending value = sale price or principal + coupons + interest earned on reinvested coupons. For semiannual coupons, compute per half-year and then annualize as the question requires.
- Future value of reinvested coupons
- FV = C × [(1 + r)^n − 1] ÷ r
- Ordinary annuity future value at the reinvestment rate r per coupon period, n coupons.
- STRIPS / zero-coupon price
- P = F ÷ (1 + y/2)^(2T)
- Semiannual compounding is the Treasury convention. T is in years. For annual compounding use (1 + y)^T.
- T-bill discount yield
- d = (F − P) ÷ F × (360 ÷ t)
- t is days to maturity. Base is face value, year is 360 days.
- T-bill price from discount yield
- P = F × (1 − d × t ÷ 360)
- Rearranged form of the discount yield.
- Bond equivalent yield (bill, t ≤ 182 days)
- BEY = (F − P) ÷ P × (365 ÷ t)
- Base is price paid, year is 365 days. This simple formula applies only to bills of 182 days or less. Longer bills need a quadratic adjustment, rarely tested.
- Accrued interest
- AI = Coupon × (days since last coupon ÷ days in coupon period)
- Coupon is the semiannual payment. Count days by the stated convention.
- Dirty price
- Dirty = Clean + Accrued interest
- The buyer pays the dirty price.
- 30/360 day count
- Days = 360(Y2 − Y1) + 30(M2 − M1) + (D2 − D1)
- Day 31 is usually treated as 30. Follow the exam's stated rule.
Quick revision
- Bond price = present value of all coupons and principal, discounted at the appropriate rates.
- Price and yield move in opposite directions.
- A bond priced at par has coupon rate equal to yield; premium means coupon is above yield; discount means below.
- A spot rate is the yield on a zero-coupon bond for a given maturity.
- Forward rate link, annual compounding: (1 + s₂)² = (1 + s₁)(1 + f₁,₂).
- The par rate is the coupon rate that prices a bond at par given the discount curve.
- Yield to maturity is the single discount rate that equates price to cash flows.
- Continuous compounding: FV = PV × e^(rt); convert before comparing with periodic rates.
- Effective annual rate = (1 + y/m)^m − 1.
- Dirty price = clean price + accrued interest.
- A STRIP is a zero-coupon security created from separated Treasury coupon or principal payments.
- Realized return depends on reinvestment rates and the sale price, so it can differ from the original yield.
Common mistakes
- Using the annual yield and annual coupon with semiannual periods Fix: For semiannual bonds always use y/2, c/2 and N = 2 × years.
- Discounting every cash flow at one rate when spot rates are given Fix: With a spot curve, use zₜ for each cash flow t. Only a yield uses one rate.
- Treating the par yield as the spot rate for maturities beyond one year. Fix: Only the shortest maturity has par yield equal to spot rate. Bootstrap for every longer maturity.
- Forgetting to include the final coupon plus principal as 1 + c in the last term. Fix: Write the par equation fully: 1 = c × (sum of DFs) + 1 × DF(n). Then divide by (1 + c) after moving the earlier terms across.
- Treating BEY as an effective annual rate. Fix: BEY = 2 × semiannual rate. To get EAR, compound: (1 + BEY/2)² − 1.
- Entering the annual coupon and annual years into the calculator for a semiannual bond. Fix: Use N = years × 2 and PMT = annual coupon ÷ 2. Multiply the resulting I/Y by 2 to quote YTM.
- Averaging returns arithmetically when asked for growth of wealth over several periods. Fix: If the question asks about compound or annualized growth, use the geometric mean. Check that R_G ≤ R_A.
- Adding multi-period simple returns, for example +50% and −50% giving 0%. Fix: Multiply growth factors: 1.5 × 0.5 = 0.75, a 25% loss. Only log returns add.
- Using 365 days for the discount yield Fix: Discount yield uses 360 and face value. BEY uses 365 and price paid.
- Dividing the discount by face value when computing BEY Fix: For BEY the base is the price paid P.
Exam tips
- Check first whether the question asks for clean or dirty price. Wrong choice is a common trap answer option.
- If options differ by about the accrued interest amount, the question is testing clean versus dirty.
- Always match compounding to the rate given. Semiannual yields are often quoted as bond-equivalent yields.
- Use the par rule to eliminate options. A 5% coupon bond priced at a 4% yield must be above par.
- Keep four decimals in discount factors so rounding does not move you to a neighbouring option.
- Questions often give par yields and ask for a forward rate. Plan for two stages: bootstrap to discount factors, then divide adjacent DFs.
- Check the ordering on an upward curve: forward above spot, spot above par. If your answer violates this, recheck the arithmetic.
- The simple approximation for forwards is usually close to the correct answer. Options may be built to catch you out, so compute exactly when options differ by small amounts.