Fixed Income Basics - part 1 Spot Interest rates The zero-coupon yield curve Bond yield-to-maturity Default-free bond pricing Finance 70520, Spring 2002 The Neeley School of Business at TCU ©Steven C. Mann, 2002 Term structure yield 7.0 6.5 6.0 Typical interest rate term structure 5.5 5.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Maturity (years) “Term structure” may refer to various yields: “spot zero curve”: yield-to-maturity for zero-coupon bonds source: current market bond prices (spot prices) “forward curve”: forward short-term interest rates: “short rates” source: zero curve, current market forward rates “par bond curve”: yield to maturity for bonds selling at par source: current market bond prices Determination of the zero curve B(0,t) is discount factor: price of $1 received at t; B(0,t) (1+ 0yt)-t . Example: find 2-year zero yield use 1-year zero-coupon bond price and 2-year coupon bond price: bond price per $100: 1-year zero-coupon bond 94.7867 2-year 6% annual coupon bond 100.0000 yield 5.500% 6.000% B(0,1) = 0.9479. Solve for B(0,2): 6% coupon bond value = B(0,1)($6) + B(0,2)($106) $100 = 0.9479($6) + B(0,2)($106) 100 = 5.6872 + B(0,2)($106) 94.3128 = B(0,2)(106) B(0,2) = 94.3128/106 = 0.8897 so that 0y2 = (1/B(0,2))(1/2) -1 = (1/0.8897)(1/2) -1 = 6.0151% “Bootstrapping” the zero curve from Treasury prices Example: six-month T-bill price 12-month T-bill price B(0,6) = 0.9748 B(0,12) = 0.9493 18-month T-note with 8% coupon paid semi-annually price = 103.77 find “implied” B(0,18): 103.77 = = = 96.0736 = B(0,18) = 4 B(0,6) + 4 B(0,12) + (104)B(0,18) 4 (0.9748+0.9493) + 104 B(0,18) 7.6964 + 104 B(0,18) 104 B(0,18) 96.0736/104 = 0.9238 24-month T-note with 7% semi-annual coupon: Price = 101.25 101.25 = 3.5B(0,6) + 3.5B(0,12) + 3.5B(0,18) + 103.5B(0,24) = 3.5(0.9748+0.9493+0.9238) + 103.5B(0,24) B(0,24) = (101.25 - 9.9677)/103.5 = 0.9016 Coupon Bonds T Price = S Ct B(0,t) + (Face) B(0,T) t=1 where B(0,t) is price of 1 dollar to be received at time t or T Price = S t=1 1 1 Ct (1+r )t + (Face) (1+r )T t t where rt is discretely compounded rate associated with a default-free cash flow (zero-coupon bond) at time t. Define par bond as bond where Price=Face Value = (par value) Yield to Maturity Define yield-to-maturity, y, as: T Price S t=1 1 1 t Ct(1+y) + (Face) (1+y)T Solution by trial and error [calculator/computer algorithm] Example: 2-year 7% annual coupon bond, price =104.52 per 100. by definition, yield-to-maturity y is solution to: 104.52 = 7/(1+y) + 7/(1+y)2 + 100/(1+y)2 initial guess : second guess: y = 0.05 y = 0.045 eventually: when y = 0.04584 price = 103.72 price = 104.68 price = 104.52 (guess too high) (guess too low) y = 4.584% If annual yield = annual coupon, then price=face (par bond) Coupon bond yield is “average” of zero-coupon yields T T 1 1 Bond Value B(0, t )C t B(0, T )Face Ct Face t T (1 0 yT ) t 1 t 1 (1 0 yt ) Coupon bond yield-to maturity, y, is solution to: T 1 1 Bond Value Ct Face t T (1 y ) t 1 (1 y ) T 1 1 Ct Face t T (1 0 yT ) t 1 (1 0 yt ) bond: $100 par, 3-year, annual coupon = 10% T B(0,T) B(0,t)Ct B(0,3)$100 0y T 1 0.92593 8.00% 9.26 2 0.84175 9.00% 8.42 3 0.75833 9.66% 7.58 75.83 Bond Value total: 25.26 75.83 101.09 9.56% Bond yield = Bonds with same maturity but different coupons will have different yields. bond: $100 par, 3-year, annual coupon = 15% T B(0,T) B(0,t)Ct B(0,3)$100 0y T 1 0.92593 8.00% 13.89 2 0.84175 9.00% 12.63 3 0.75833 9.66% 11.37 75.83 Bond Value total: 37.89 75.83 113.72 9.52% Bond yield = bond: $100 par, 3-year, annual coupon = 5% T B(0,T) B(0,t)Ct B(0,3)$100 0y T 1 0.92593 8.00% 4.63 2 0.84175 9.00% 4.21 3 0.75833 9.66% 3.79 75.83 Bond Value total: 12.63 75.83 88.46 9.61% Bond yield = Semi-annual Yield-to-Maturity Define semi-annual yield-to-maturity, ys, as: Price T S t=1 1 1 Ct(1+y /2)+t (Face) (1+y /2)T s s Note effective annual yield-to-maturity is yA (1+ys/2)2 - 1 Example: 2-year 7% semi-annual coupon bond, price =103.79 per 100. by definition, semi-annual yield-to-maturity ys is solution to: 103.79 = S 3.50/(1+ys/2)t + 100/(1+ys/2)4 eventually: when ys/2 = 0.0249 = 2.49% effective annual yield-to-maturity is yA = (1 + 0.0249)2 - 1 = 5.04% If semi-annual yield = semi-annual coupon, then price=face (par bond) Reinvestment assumptions and yield-to-maturity Yield-to-maturity (ytm) is holding period rate of return only if coupons can be reinvested at the same rate as yield-to-maturity Example: 6% semi-annual coupon Par bond (price=100.00) yield-to-maturity, ys, is defined as: 100 So that ys = 0.06 3 3 100 (1 y s / 2) (1 y s / 2) 2 (1 y s / 2) 2 6-month coupon re-invested at ytm becomes 3(1+ys/2) = 3(1.03) in one year. End-of-year value: 103 + 3(1.03) = 106.09. Holding period return: (106.09-100)/100 = 6.09% Effective annual yield: 6% semi-annual yield = (1+0.06/2)2-1 = 6.09% When re-investment is compounded semi-annually: re-investment holding-period rate proceeds at one year return 5.0% 103 + 3.075 = 106.075 6.075% 7.0% 103 + 3.105 = 106.105 6.105% Treasury bond quotes and prices Accrued interest = Coupon x [(days since last coupon)/(days in coupon period)] coupon coupon Coupon period Coupon 11.625% Bid 129.875 Maturity 11/15/04 Ask 130.000 Par value (Face) $100,000 Settlement date 1/22/98 days in coupon period 181 days since last coupon 68 accrued interest $2,183.70 Total purchase price if bought at bid $132,058.70 Total purchase price if bought at ask $132,183.70 Quotes are “clean prices” (no accrued interest) Actual price is “dirty price” Floating rate notes Debt contract: face value, maturity, coupon payment dates Interest payments (coupons) reset at each coupon date. Example: one-year floater, semi-annual payments, Face=$100.00 payment based on six-month simple rate at beginning of coupon period date zero (today) six months later spot six-month rate 5.25% 5.60% coupon paid: end of period c = 5.25/2 = 2.625 c = 5.60/2 = 2.80 Six months from now, value of note is: 102.80/[1+ 0.056 x (1/2)] = 102.80/1.028 = $100 In six months bond will be valued at par. So value of note at time zero is: (100 + 2.625)/[1 + 0.0525 x (1/2)] = 102.625/1.02625 = $100 Note value is at par each reset date.