Bond price (present value)
P = C/(1+r) + C/(1+r)^2 + ... + C/(1+r)^n + F/(1+r)^n
The definition. Use it when there are few periods, or when no factor tables are given. Remember the last period carries both the coupon and the face value.
- C
- Coupon per period, in rupees: coupon rate x face value / periods per year
- r
- Required return per period
- n
- Number of periods to maturity
- F
- Face or par value
Bond price (factor form)
P = C x PVIFA(r, n) + FV x PVIF(r, n)
Semi-annual: halve C, halve r, double n
Prof. Panda's form. Two multiplications instead of n divisions, and the only practical way to price a 20- or 40-period bond by hand.
- PVIFA(r,n)
- Present value interest factor of an annuity, for the coupon stream
- PVIF(r,n)
- Present value interest factor for a single sum, for the face value
Holding period return
HPR = (Price gain or loss + Coupon received) / Price at the beginning
Whenever a bond is bought and then sold rather than held to maturity. Keep the sign on the price change, and remember it is not annualised.
- Price gain or loss
- Selling price minus purchase price, negative if it fell
- Coupon received
- Coupons collected during the holding period
Current yield and capital gain yield
Current yield CuY = C / P0
Capital gain yield CGY = (P1 - P0) / P0
Expected return ERR = CuY + CGY
Splitting a one-period return into cash and price components. For a bond held one period the sum equals the YTM per period.
- C
- Coupon for the period
- P0
- Price at the start of the period
- P1
- Price at the end of the period
YTM approximation
YTM = [C + (P or D / years to maturity)] / [(P0 + F) / 2]
P or D = F - P0 (positive for a discount, negative for a premium)
Whenever a YTM is asked for by hand. Keep the sign on the premium or discount; forgetting it on a premium bond is the standard error.
- C
- Annual coupon in rupees
- P0
- Current market price
- F
- Face value
Clean, dirty and accrued interest
AI = Coupon x (days since last coupon) / (days between coupons)
Dirty (invoice) price = Clean price + AI
Clean price = Dirty price - AI
Any trade between coupon dates. Quotes are clean; settlement is dirty.
- AI
- Accrued interest owed to the seller
Valuation between coupon dates (ACT/ACT)
K = N1 / N2
Dirty price = P1(minus) x PVIF(r, K)
AI = Coupon x (1 - K)
Clean price = Dirty price - AI
When the settlement date falls between two coupon dates. Price to the next coupon date first, then discount back by the fraction K of one period.
- N1
- Actual days from today to the next coupon date
- N2
- Actual days between the two coupon dates
- P1(minus)
- Price as of the next coupon date, just before the coupon is paid
Zero-coupon bond price
P = F / (1 + r)^n
Zero-coupon or deep discount bonds, and each leg of a STRIPS. One cash flow, so one division, and no reinvestment risk.
- F
- Face value received at maturity
- r
- Yield per period
- n
- Number of periods