A bond with years to maturity pays an annual coupon of and repays its face value of at the end of year 3. Its market price today is .
Find the yield to maturity , i.e. solve
Read the equation as "price = present value of the cash flows". Each term discounts one payment back to today at the same unknown rate . The last term is , not , because year 3 brings the final coupon and the face value: . The yield to maturity is precisely the single discount rate that makes the present value equal the quoted price.
Substitute and clear the denominators. With the equation becomes
and multiplying through by gives a cubic:
This shows why there is no tidy formula: for three or more periods the yield solves a polynomial of degree , so it must be found numerically. The substitution is still worth doing, because it makes the function obviously decreasing in — a higher yield always means a lower price — so there is exactly one economically meaningful root.
Anchor the search with the par value. At (the coupon rate) the price would be
exactly par. The bond actually trades at , a discount, so the yield must be above . This one check tells you which direction to search before doing any trial and error.
Bracket the root with two trials. Try ():
Still above , so the yield is higher. Try ():
Now below . The root is trapped between and .
Interpolate, then refine. Linear interpolation between the two prices gives a first estimate
One or two Newton steps on settle it at
Check the answer by pricing the bond again. With :
The price is reproduced to the cent, so . Note that a rounded guess such as prices the bond at about — over five dollars too high — which is why the bracketing step matters: do not stop at the first estimate that merely looks close.
Need to solve a different problem like this? Open the solver →