Finding a Bond's Yield from Its Price

The pricing equation gives price from yield; investors usually need it the other way around. Because the equation can't be solved for i in closed form, you bracket the answer with two trial rates and interpolate linearly between them.

By the end you'll be able to estimate a bond's YTM by interpolating between two trial yields, sanity-check it with the bond salesman's approximation, and read the coupon-vs-yield relationship straight off the price–yield curve.

Predict: a bond trading above par — above its redemption value C — is its yield above or below the coupon rate? Check against the curve below: find where the curve crosses \(i = 8\%\) (the coupon rate), then see which side of it the target price sits on.

This 1000 par, 8% coupon, 10-year bond is quoted at P = 1147.20. Price falls as yield rises (the curve), so slide the two trial yields i₁ and i₂ until they bracket the target price — then the straight secant line between the two trial points crosses the target-price line at the interpolated yield, close to (but not exactly) the true yield on the curve.

Interpolated 6.09% · True 6.00% · Salesman's approx 6.08%

Price vs. yield — target price 1147.20, trial points, and the interpolating secant
P(i) interpolation secant target price P

You know P, F, r, and n; you want the i that makes the pricing equation balance. Since you can't isolate i algebraically, you approximate it numerically instead.

Formal

The price equation \(P = Fr\cdot a_n + C\cdot v^n\), \(v = 1/(1+i)\), is a smooth, strictly decreasing function of i, which guarantees a unique yield and makes root-finding reliable. Pick trial rates \(i_1 < i_2\) bracketing the answer, price the bond at each to get \(P(i_1) > P > P(i_2)\), then fit a straight line through the two points and solve for where it crosses P:

\(i \approx i_1 + (i_2 - i_1)\cdot\dfrac{P(i_1) - P}{P(i_1) - P(i_2)}\)

Because the true curve bends slightly (it isn't exactly straight), the interpolated value is an approximation — tightening the bracket around the answer improves it. A financial calculator instead runs Newton's method internally on the same equation and returns i directly.

Applied

For a fast estimate without any trial rates at all, the bond salesman's approximation averages the coupon income with the straight-line write-off of the premium or discount, divided by the average of price and redemption value:

\(i \approx \dfrac{Fr + (C-P)/n}{(P+C)/2}\)

It's only an approximation — never treat it as exact — but it's a fine seed for choosing your two trial rates before interpolating.

Worked example

F = C = 1000, 8% annual coupons, n = 10, quoted at P = 1147.20. Try \(i_1 = 6\%\): \(P(6\%) = 1147.20\). Try \(i_2 = 7\%\): \(P(7\%) = 80\cdot a_{10} + 1000\cdot v^{10}\) at 7% = 561.89 + 508.35 = 1070.24. Interpolating: \(i \approx 6\% + 1\%\cdot\dfrac{1147.20 - 1147.20}{1147.20 - 1070.24} = 6\% + 0 =\) 6.00% — exact here because the target price is one of the trial prices. The salesman's approximation gives \(i \approx [80 + (1000-1147.20)/10]/[(1147.20+1000)/2] = 65.28/1073.60 \approx\) 6.08%, close to the true 6%.

Your turn

Same idea, different bond: F = C = 1000, 5% annual coupons, n = 10, quoted at P = 890.00. Try \(i_1 = 6\%\): \(P(6\%) = 50\cdot a_{10} + 1000\cdot v^{10}\) at 6% = 368.00 + 558.40 = 926.40. Try \(i_2 = 7\%\): \(P(7\%) = 50\cdot a_{10} + 1000\cdot v^{10}\) at 7% = 351.18 + 508.35 = 859.53. Now finish it: \(i \approx 6\% + 1\%\cdot\dfrac{926.40 - 890.00}{926.40 - 859.53} = 6\% + 1\%\cdot \dfrac{36.40}{66.87} = 6\% +\) ____

Reveal the answer

\(6\% + 1\%\times 0.5443 = 6\% + 0.544\% =\) 6.54%. Set \(i_1 = 6\%\) and \(i_2 = 7\%\) on the sliders above and compare the shape of the secant line to this calculation — the closer the bracket, the closer the interpolated value gets to the true yield.

More info — reading premium/discount off the curve

The price–yield curve crosses \(P = C\) exactly where \(i\) equals the coupon rate r — that's the par point, since coupon equals yield means no premium or discount to write off (see premium and discount bonds). Because the curve is strictly decreasing, any target price above that par point must correspond to a yield to its left (below r), and any price below it to a yield to its right (above r) — which is exactly how you can answer the Predict question above without solving anything numerically.

Check your understanding

Question 1 of 4

A 1000 par, 6% annual coupon, 8-year bond is quoted at 950. Using the bond salesman's approximation \(i \approx [Fr + (C-P)/n] / [(P+C)/2]\), estimate the yield.

Question 2 of 4

When bracketing a bond's yield by linear interpolation with trial rates \(i_1 < i_2\), what must be true of the corresponding prices \(P(i_1)\) and \(P(i_2)\)?

Question 3 of 4

A 1000 par bond with 7% annual coupons and 12 years to maturity is priced at 1050.76. Which equation would you solve for \(i\) to find its yield to maturity?

Question 4 of 4

A bond is quoted at a price above its redemption value C. Compared to its coupon rate, its yield to maturity is:

Recap

  • The yield to maturity is the i that solves the bond's own pricing equation \(P = Fr\cdot a_n + C\cdot v^n\) — price is a smooth, strictly decreasing function of i, so a unique yield exists.
  • Bracket the yield with trial rates \(i_1 < i_2\) so \(P(i_1) > P > P(i_2)\), then interpolate: \(i \approx i_1 + (i_2-i_1)\cdot[P(i_1)-P]/[P(i_1)-P(i_2)]\).
  • The bond salesman's approximation \(i \approx [Fr+(C-P)/n]/[(P+C)/2]\) is a quick, non-iterative estimate — good for seeding a bracket, not exact.
  • A financial calculator solves the same equation with Newton's method (N, PV, PMT, FV → I/Y).

Dive deeper

Sources

  • Finding the Yield Rate from a Bond's Price