The formulas
Split the bond into its payments. There are N coupons of C dollars each, one per period, and the face value F comes back with the last coupon. Discount each payment at the yield per period, which is the annual yield divided by the number of coupons a year.
Price = C x [1 - (1+i)^-N] / i + F / (1+i)^N, where C = coupon rate x F / coupons per year, i = yield / coupons per year, and N = years x coupons per year. YTM is the i that makes the price equal what the bond sells for, multiplied back to an annual rate. There is no algebraic solution for i, so it is found numerically. These are the standard bond-pricing formulas in textbooks such as Berk and DeMarzo, Corporate Finance.
Worked example: find the YTM from a price
A bond has a $1,000 face value, a 5% annual coupon and 10 years to maturity. It sells for $950. Because the price is below face value, the yield must be above the 5% coupon. Trying a few yields shows where $950 falls.
| Yield | Price | Compared with face value |
|---|---|---|
| 5.00% | $1,000.00 | Par |
| 5.50% | $962.31 | Discount |
| 5.67% (solved: 5.6687%) | $950.00 | Discount |
| 6.00% | $926.40 | Discount |
The calculator lands on 5.6687%. The common shortcut, (C + (F - P)/n) / ((F + P)/2), gives 5.64%, which is close but not what a financial calculator would show. The current yield, $50 / $950, is 5.26%, and it ignores the gain you collect as the price climbs back to $1,000, so it is a different number again.
Now price a bond from a yield. A bond with a 5% coupon paid semiannually and 10 years left, when the market asks 6%, has 20 coupons of $25 discounted at 3% each. The coupons are worth $371.94 and the face value $553.68, so the price is $925.61. Switch the calculator to price mode and pick semiannual coupons. The 6% yield is already filled in.
Par, premium and discount
When the coupon rate equals the yield, the bond sells at par. When the market yield is higher than the coupon, the price falls below par and the bond sells at a discount. When the market yield is lower, buyers pay a premium for the richer coupon. Price and yield move in opposite directions, and longer bonds move further for the same change in yield.
Bonds are quoted with a nominal annual yield compounded at the coupon frequency, so a 6% semiannual yield is 3% per half-year. The effective annual yield is (1.03)^2 - 1 = 6.09%. The calculator shows both so you can match whichever the problem asks for. Pricing here is on a coupon date, so the price is the clean price with no accrued interest.
Mistakes that cost points
- Forgetting to halve the coupon and the yield, and double the years, for a semiannual bond.
- Reporting the current yield as the YTM. They match only when the bond is priced at par.
- Treating YTM as the return you will earn no matter what. It holds if you keep the bond to maturity, the issuer pays in full, and you reinvest coupons at the same yield.
- Mixing a nominal yield with an effective one when comparing two bonds.
- Typing the price as a percent of face value. Enter dollars here, so $950 and not 95.
Estimate for learning, not financial advice. Inputs stay in your browser and are not sent or stored.