The coupon rate is not the yield
The coupon printed on a bond is a promise about face value and nothing else. A $10,000 bond with a 4% coupon pays $400 a year to whoever holds it, regardless of what they paid. Buy that bond for $9,800 and the same $400 is 4.08% of your money, and on top of that you hand over $9,800 now and collect $10,000 at maturity, which is another $200 that the coupon rate says nothing about.
So there are at least three numbers called yield. The coupon rate, fixed at issue against face value. The current yield, which is the annual coupon divided by your price and describes the cash return only. And the yield to maturity, which folds the coupons and the redemption difference into a single annual rate. When somebody asks what a bond yields, they mean the third one.
Yield to maturity has no closed form
Yield to maturity is defined as the discount rate that makes the present value of all remaining cash flows equal the price you paid:
price = coupon / (1+y)¹ + coupon / (1+y)² + … + (coupon + face) / (1+y)ⁿ
There is no algebraic way to isolate y. Once n exceeds four the equation is a polynomial of degree five or higher, and Abel showed in 1824 that no general formula in radicals exists for those. So you cannot solve it; you can only search for it. Guess a rate, price the bond at that rate, and if the result is above the price you paid, the yield is higher than your guess.
This page does that by bisection. It brackets the answer between -90% and +500% a year, halves the interval two hundred times, and returns the midpoint. Two hundred halvings shrink the bracket far below anything a double-precision float can represent, so the answer is exact to every digit displayed. Bloomberg terminals, Excel's RATE and YIELD functions, and your broker's screen all run the same kind of search, generally with Newton's method rather than bisection because it converges faster, and they all land on the same number.
How far off the textbook approximation is
Before spreadsheets there was an approximation, and it is still taught:
approximate YTM = [annual coupon + (face - price) / years] / [(face + price) / 2]
It spreads the redemption difference evenly across the remaining years and treats the average of price and face as the money at risk. It is arithmetic you can do on paper, and it ignores two things: when each dollar arrives, and the compounding of coupons received along the way.
The error therefore stays small when the term is short and the price is near par, and grows when either of those stops being true. On a three-year bond bought at $9,800 against $10,000 of face with a 4% semi-annual coupon, the approximation gives 4.714% against a solved 4.723% on the same bond-equivalent basis, a gap of 0.9 basis points, which is nothing. Stretch a wider discount over twenty years and the gap widens into the tens of basis points. The calculator prints both figures and the difference in basis points, so you can see what the shortcut costs on your particular bond rather than taking a rule of thumb for it.
What yield to maturity quietly assumes
One assumption is buried in the definition and it is worth saying out loud: every coupon you receive is reinvested at the yield to maturity itself, all the way to maturity. That is what discounting at a single rate means. In reality rates have moved by the time each coupon arrives, and reinvesting a few hundred dollars at institutional terms is not something an individual can do anyway.
The consequence is that a bond held to maturity rarely realises exactly its quoted yield to maturity. The gap is called reinvestment risk, it grows with the size of the coupons and the length of the term, and it is the one risk a zero coupon bond does not have — there is nothing to reinvest, so the yield you calculate at purchase is the yield you get, provided the issuer pays.
| Not in this calculation | Why it can matter more than the yield |
|---|---|
| Credit risk | The yield assumes the issuer pays. Most of the spread between a Treasury and a BBB corporate is the price of that assumption. |
| Selling before maturity | The price on the day is set by prevailing rates, not by this calculation. |
| Commissions and spreads | Add them to the purchase price and they are reflected. Retail bond spreads are often wider than the commission. |
| Accrued interest | Buy between coupon dates and you pay the seller for the interest accrued so far. Enter the full settled amount. |
| Call provisions | A callable bond may not reach maturity. Yield to call and yield to worst are the figures that matter there. |
| Inflation | Every figure here is nominal. A 4.7% yield with 3% inflation is under 2% in purchasing power. |
The last row is the one people skip, and over a long bond it dominates the rest.
Questions people ask
Why does my broker show a slightly different yield?
Usually convention rather than error. Most US platforms quote the bond-equivalent yield, which is the semi-annual rate simply doubled, while an annually compounded figure on the same bond is a few basis points higher. This page prints both so you can match whichever one you are looking at. The other common cause is the price: a settled amount includes accrued interest and any markup, and entering the clean quoted price instead of what actually left your account will move the yield. Day-count conventions on the stub period to the next coupon account for the last basis point or two.
Should I use the annually compounded figure or the bond-equivalent one?
Whichever matches the thing you are comparing against. Comparing two bonds, use either, as long as you use the same one for both. Comparing a bond against a CD or savings account quoted as an annual percentage yield, use the annually compounded figure, because APY is already a compounded number and the bond-equivalent figure is not. Comparing against a quoted benchmark yield or a broker screen, use the bond-equivalent figure, because that is what those are. The mistake to avoid is putting a bond-equivalent yield next to an APY and treating the difference as real.
Is a higher yield to maturity a better bond?
Not on its own, and a yield that stands out from its peers is usually telling you something. Yield compensates for risk, so a bond yielding well above others of similar maturity is generally priced for a worse credit rating, subordination, a call feature that caps the upside, or thin liquidity that will cost you on the way out. Yield to maturity is a number computed under the assumption that the issuer pays in full and on time. When that assumption is the shaky part, the question stops being what you earn and becomes what you recover.
How exact does the years-to-maturity figure need to be?
Reasonably, but not to the day. Enter the time from today to the maturity date in years — two years and seven months is about 2.58. Where it does not divide evenly into the coupon schedule, the calculator rounds to the nearest whole number of payments and adjusts the term to match, and it tells you when it has done so. The residual error is small on a multi-year bond. It is largest when the next coupon is only days away, because a payment arriving almost immediately is worth more than the model gives it credit for, so the real yield sits a little above the figure shown.
Does this handle TIPS or floating-rate notes?
No. Both break the same assumption, which is that the future cash flows are known today. TIPS adjust principal with the CPI, so their yield to maturity is quoted as a real yield and the nominal return depends on inflation that has not happened yet. Floating-rate notes reset their coupon against a reference rate, so the coupon in the model is only the current one and every payment after the next reset is a guess. For either, discounted-margin or real-yield analysis is the right tool, and this page is not it.