Why Search for a Bond’s Yield?
A bond’s yield to maturity is the annual rate that makes the present value of its promised cash flows equal its observed market price. For a coupon bond, this rate usually cannot be isolated with a simple rearrangement of the pricing equation. A practical method is to test rates, find two that place the calculated prices on opposite sides of the market price, and interpolate between those rates.
The key is to treat interpolation as an estimate, not an exact solution. Bond price is a nonlinear function of yield. Repricing at the estimated yield shows whether the estimate is sufficiently close or whether another search step is needed. The setup here uses annual coupon payments and an annual effective yield; bonds with other payment frequencies require matching the yield period to the cash-flow period.
Trial Rates and the Price Bracket
For each trial yield \(y\), calculate the present value of every remaining coupon and the face value. A useful check follows from the bond’s positive cash flows: increasing the discount rate lowers each cash flow’s present value, and therefore lowers the bond’s price. Thus, if the price calculated at a lower trial rate is above the market price, while the price at a higher rate is below it, the yield lies between those two rates.
This direction check helps catch a common input or interpretation error. For a conventional bond with positive coupons and face value, a trial rate that is too low cannot produce a price below the market price if the yield is the only unknown and the cash flows are entered correctly.
Why Linear Interpolation Gives an Estimate
Once two trial rates bracket the yield, interpolation estimates where the market price falls between their calculated prices. Let \(P_L=P(y_L)\) and \(P_H=P(y_H)\), with \(P_L>P_{\text{market}}>P_H\). The fraction of the price interval from \(P_L\) down to the market price is \((P_L-P_{\text{market}})/(P_L-P_H)\). Applying the same fraction to the rate interval gives the estimate.
This formula is the equation of a straight line drawn between the two trial points \((y_L,P_L)\) and \((y_H,P_H)\). It estimates the yield at which that line reaches \(P_{\text{market}}\). The true bond-price curve is not a straight line, so the interpolated rate will generally not reproduce the market price exactly. A narrower bracket usually improves the estimate because a curved function is closer to a straight line over a shorter interval.
List each remaining annual coupon and include face value with the final coupon.
Discount the cash flows at each trial rate, keeping enough precision to compare prices.
Confirm that one calculated price is above the market price and the other is below it.
Estimate the yield from the price interval, reprice at that yield, and report any difference from the market price.
Worked Searches
Worked Example: Interpolating and Checking a Three-Year Bond
A hypothetical bond has face value \(F=\$1{,}000\), an annual coupon \(C=\$80\), and three years remaining. Its market price is \(\$940.00\). Estimate its yield using trial rates of 10% and 12%, then check the estimate by repricing.
Method and cash flows. The cash flows are \(\$80\) at the end of years 1 and 2, and \(\$1{,}080\) at the end of year 3. At a trial rate \(y\), $$ P(y)=\frac{80}{1+y}+\frac{80}{(1+y)^2}+\frac{1{,}080}{(1+y)^3}. $$
Price at 10%. The discount factors are \(1/1.10=0.909091\), \(1/1.10^2=0.826446\), and \(1/1.10^3=0.751315\), rounded to six decimals. Therefore, $$ P(0.10)=80(0.909091)+80(0.826446)+1{,}080(0.751315) \approx \$950.26. $$
Price at 12%. The corresponding factors are \(0.892857\), \(0.797194\), and \(0.711780\). Thus, $$ P(0.12)=80(0.892857)+80(0.797194)+1{,}080(0.711780) \approx \$903.93. $$
The market price lies between these trial prices, so the yield is bracketed between 10% and 12%. Interpolation gives $$ \widehat{y} =0.10+ \frac{950.26-940.00}{950.26-903.93}(0.12-0.10) \approx 0.10443. $$ The estimate is approximately 10.44%.
Verification. Discounting the same cash flows at 10.44% gives approximately \(\$939.79\). This is about \(\$0.21\) below the market price of \(\$940.00\). The small residual is consistent with interpolation and rounding; a more precise search could refine the yield.
Common mistake avoided: The face value is received only at maturity, but the final coupon is also received then. Omitting the final \(\$80\) coupon would understate every trial price and invalidate the bracket.
Worked Example: Reading the Direction of the Bracket
A hypothetical two-year bond has face value \(F=\$1{,}000\), annual coupon \(C=\$50\), and market price \(\$970.00\). Find an interpolated yield from trial rates of 4% and 8%, and check it.
Method and cash flows. The payments are \(\$50\) after one year and \(\$1{,}050\) after two years. Hence $$ P(y)=\frac{50}{1+y}+\frac{1{,}050}{(1+y)^2}. $$
Trial prices. At 4%, $$ P(0.04)=\frac{50}{1.04}+\frac{1{,}050}{1.04^2} =48.076923+970.414201 \approx \$1{,}018.49. $$ At 8%, $$ P(0.08)=\frac{50}{1.08}+\frac{1{,}050}{1.08^2} =46.296296+900.205761 \approx \$946.50. $$ The 4% price is above \(\$970.00\), and the 8% price is below it, so the bracket is correctly ordered.
Interpolation. $$ \widehat{y} =0.04+ \frac{1{,}018.49-970.00}{1{,}018.49-946.50}(0.08-0.04) \approx 0.06694. $$ The interpolated estimate is approximately 6.69%.
Verification. At 6.69%, the price is approximately $$ \frac{50}{1.0669}+\frac{1{,}050}{1.0669^2} \approx 46.86+922.45=\$969.31. $$ That is \(\$0.69\) below the market price. The estimate is close, but not exact.
Common mistake avoided: Do not put the 8% price first in the interpolation fraction while still adding the fraction to 4%. The low rate must be paired with the higher price, and the fraction must measure the price decline from that higher price toward the market price.
Worked Example: A Larger Bond and a Narrower Follow-Up Search
A hypothetical bond has face value \(F=\$5{,}000\), annual coupon \(C=\$300\), and three years remaining. Its market price is \(\$5{,}100.00\). First interpolate from trial rates of 5% and 7%, then check the estimate.
Method and trial prices. The cash flows are \(\$300\), \(\$300\), and \(\$5{,}300\). At 5%, the annuity factor for three annual payments is \(2.723248\), and the year-3 discount factor is \(0.863838\). Therefore, $$ P(0.05)=300(2.723248)+5{,}000(0.863838) \approx \$816.97+\$4{,}319.19 =\$5{,}136.16. $$ At 7%, the corresponding factors are \(2.624316\) and \(0.816298\), giving $$ P(0.07)=300(2.624316)+5{,}000(0.816298) \approx \$787.29+\$4{,}081.49 =\$4{,}868.78. $$ These values bracket the market price.
Interpolation. $$ \widehat{y} =0.05+ \frac{5{,}136.16-5{,}100.00}{5{,}136.16-4{,}868.78}(0.07-0.05) \approx 0.05271. $$ The interpolated estimate is 5.27%.
Verification. Repricing at 5.27% gives a three-year annuity factor of approximately \(2.709529\) and a year-3 discount factor of approximately \(0.857208\). Thus, $$ P(0.0527)=300(2.709529)+5{,}000(0.857208) \approx \$812.86+\$4{,}286.04 =\$5{,}098.90. $$ The result is \(\$1.10\) below the market price. To improve it, test rates closer together around 5.27%, retain the new pair that brackets \(\$5{,}100.00\), and interpolate again.
Common mistake avoided: Scaling all cash flows by a factor of five does not change the yield, but it does scale every calculated price by five. Keep the stated face value and coupon units consistent when checking the residual.
Common Traps and Practical Checks
Numerical search is straightforward when the rate, cash flows, and price comparison all use the same basis. Before accepting an estimate, check the following:
- Use the correct number of periods. With annual coupons, a three-year bond has three coupon periods. Do not treat years as months or insert extra periods.
- Include principal once. Add face value to the final coupon cash flow; do not discount face value at every date.
- Check the direction. The price calculated at the lower trial rate should be higher than the price calculated at the higher trial rate for positive promised cash flows.
- Do not treat interpolation as exact. It assumes a straight line between two points on a curved price-yield relationship.
- Keep precision during the search. Round the reported yield at the end, but avoid rounding trial prices so aggressively that the bracket or interpolation fraction changes materially.
If the reprice at the interpolated rate misses the market price by more than the desired tolerance, do not force the estimate to appear exact. Test additional rates near the estimate, check the resulting bracket, and repeat. This combination of bracketing and verification is more reliable than trusting a single interpolation calculation.
Check Your Understanding
For each problem, use the supplied trial prices as the results of discounting the stated annual cash flows. Keep the lower trial rate paired with the higher trial price when interpolating.
- A hypothetical annual-coupon bond has market price \(\$1{,}000\). Trial prices are \(\$1{,}040\) at 4% and \(\$960\) at 8%. Interpolate the yield and state why the trial rates bracket it. (Answer: 6.00%; the prices lie on opposite sides of the market price.)
- A bond’s market price is \(\$985\). A search gives a price of \(\$1{,}018.59\) at 5% and \(\$947.22\) at 9%. Estimate the yield by linear interpolation, to two decimal places. (Answer: approximately 6.88%)
- A hypothetical bond has \(F=\$5{,}000\), annual coupon \(C=\$300\), and three years remaining. Trial prices are \(\$5{,}136.16\) at 5% and \(\$4{,}868.78\) at 7%; the market price is \(\$5{,}100\). Find the interpolated yield to two decimal places. (Answer: approximately 5.27%)
- A search gives \(P(6\%)=\$1{,}012\) and \(P(8\%)=\$968\) for a bond priced at \(\$1{,}000\). Interpolate the yield. Then, a narrower search gives \(P(6.5\%)=\$1{,}001.80\) and \(P(6.6\%)=\$999.10\); interpolate again. (Answer: first estimate 6.55%; refined estimate approximately 6.57%)
- A bond is priced at \(\$2{,}400\). Its calculated price is \(\$2{,}416\) at 7% and \(\$2{,}388\) at 9%. Interpolate the yield, then explain which direction a new trial rate should move if the reprice at the estimate is still above \(\$2{,}400\). (Answer: approximately 8.14%; test a higher rate to lower the calculated price.)