Finance · real student question

A 3-year bond pays an annual coupon of 80 and repays its face value of 1,000 at maturity. It currently trades at 938. Find its yield to maturity y, that is, solve 938 = 80/(1+y) + 80/(1+y)^2 + 1080/(1+y)^3.

Question

A bond with 33 years to maturity pays an annual coupon of 8080 and repays its face value of 1,0001{,}000 at the end of year 3. Its market price today is 938938.

Find the yield to maturity yy, i.e. solve

938=801+y+80(1+y)2+1080(1+y)3938=\frac{80}{1+y}+\frac{80}{(1+y)^2}+\frac{1080}{(1+y)^3}

Step-by-step solution

  1. Read the equation as "price = present value of the cash flows". Each term discounts one payment back to today at the same unknown rate yy. The last term is 10801080, not 8080, because year 3 brings the final coupon and the 1,0001{,}000 face value: 80+1000=108080+1000=1080. The yield to maturity is precisely the single discount rate that makes the present value equal the quoted price.

  2. Substitute x=1+yx=1+y and clear the denominators. With x=1+yx=1+y the equation becomes

    938=80x+80x2+1080x3938=\frac{80}{x}+\frac{80}{x^2}+\frac{1080}{x^3}

    and multiplying through by x3x^3 gives a cubic:

    938x380x280x1080=0938x^3-80x^2-80x-1080=0

    This shows why there is no tidy formula: for three or more periods the yield solves a polynomial of degree 3\ge 3, so it must be found numerically. The substitution is still worth doing, because it makes the function obviously decreasing in xx — a higher yield always means a lower price — so there is exactly one economically meaningful root.

  3. Anchor the search with the par value. At y=8%y=8\% (the coupon rate) the price would be

    801.08+801.082+10801.083=74.07+68.59+857.34=1000.00\frac{80}{1.08}+\frac{80}{1.08^2}+\frac{1080}{1.08^3}=74.07+68.59+857.34=1000.00

    exactly par. The bond actually trades at 938<1000938<1000, a discount, so the yield must be above 8%8\%. This one check tells you which direction to search before doing any trial and error.

  4. Bracket the root with two trials. Try y=10%y=10\% (x=1.10x=1.10):

    801.10+801.21+10801.331=72.7273+66.1157+811.4200=950.2630\frac{80}{1.10}+\frac{80}{1.21}+\frac{1080}{1.331}=72.7273+66.1157+811.4200=950.2630

    Still above 938938, so the yield is higher. Try y=11%y=11\% (x=1.11x=1.11):

    801.11+801.2321+10801.367631=72.0721+64.9298+789.6867=926.6886\frac{80}{1.11}+\frac{80}{1.2321}+\frac{1080}{1.367631}=72.0721+64.9298+789.6867=926.6886

    Now below 938938. The root is trapped between 10%10\% and 11%11\%.

  5. Interpolate, then refine. Linear interpolation between the two prices gives a first estimate

    y0.10+0.01950.2630938950.2630926.6886=0.10+0.0112.263023.5744=0.1052y\approx 0.10+0.01\cdot\frac{950.2630-938}{950.2630-926.6886}=0.10+0.01\cdot\frac{12.2630}{23.5744}=0.1052

    One or two Newton steps on f(x)=80x+80x2+1080x3938f(x)=\frac{80}{x}+\frac{80}{x^2}+\frac{1080}{x^3}-938 settle it at

    x=1.1051578y=0.1051578x=1.1051578\quad\Longrightarrow\quad y=0.1051578

  6. Check the answer by pricing the bond again. With y=10.51578%y=10.51578\%:

    801.1051578+801.10515782+10801.10515783=72.3879+65.5000+800.1121=938.00\frac{80}{1.1051578}+\frac{80}{1.1051578^2}+\frac{1080}{1.1051578^3}=72.3879+65.5000+800.1121=938.00

    The price is reproduced to the cent, so y10.52%y\approx 10.52\%. Note that a rounded guess such as 10.3%10.3\% prices the bond at about 943.1943.1 — over five dollars too high — which is why the bracketing step matters: do not stop at the first estimate that merely looks close.

Answer

y0.10516=10.52%y \approx 0.10516 = 10.52\%

Need to solve a different problem like this? Open the solver →