Yield to maturity (YTM) is the single discount rate that makes a bond's market price equal the present value of everything the bond still pays — every remaining coupon plus the face value at maturity. It is the bond's implied annual return if you buy at today's price, hold it to the end, and collect every payment. No algebra isolates that rate, so in practice you estimate it with an approximation formula or let a calculator iterate to the exact answer; this page shows both.
You need YTM whenever a bond trades away from face value. A quoted price of $946.30 tells you what a bond costs, but not what it earns — YTM converts that price into a rate you can compare against other bonds, savings rates, or a required return.
Price = C/(1+y)^1 + C/(1+y)^2 + ... + C/(1+y)^n + F/(1+y)^n — solve for y
Price — What the bond trades for today
C — Coupon payment per period, in dollars
F — Face (par) value repaid at maturity
n — Number of coupon periods remaining
y — Yield to maturity — the unknown you are solving for
This is the same equation used in bond valuation, run in reverse. There you know the market rate and solve for the price. Here the market hands you the price, and you back out the rate hiding inside it. Every term is a cash flow divided by a discount factor: each coupon C discounted back from its payment date, and the face value F discounted back from maturity. YTM is whatever value of y makes all those pieces add up to the actual price.
The unknown y appears in the denominator of every term, raised to a different power in each one. Multiply the equation out and you get a polynomial of degree n in (1 + y) — and for a bond with more than a few periods left, no algebraic rearrangement isolates y on one side. This is not a gap in your algebra; a general closed-form solution does not exist.
So every YTM you have ever seen was found by iteration: guess a rate, compute the price it implies, compare against the actual price, adjust, repeat. In practice nobody does this by hand. You have three honest options.
=RATE(n, coupon, -price, face) runs the iteration for you, or =IRR on the full cash flow column. For real-world bonds with settlement dates, =YIELD handles the day counts.There is also a shortcut fast enough for an exam — and good enough to sanity-check a calculator answer.
The approximation replaces the discounting machinery with a simple ratio: average annual earnings divided by average money invested. The numerator adds the coupon to the gain (or loss) from the price pulling toward face value, spread evenly over the remaining years. The denominator averages what you paid and what you get back.
YTM ≈ [C + (F − P) / n] ÷ [(F + P) / 2]
C — Annual coupon payment, in dollars
F — Face (par) value
P — Current market price
n — Years to maturity
Take a bond with a $1,000 face value and a 4.5% annual coupon, six years from maturity, trading at $946.30. It trades at a discount, so its YTM should come out above its coupon rate — keep that expectation in mind as a check.
| Step | Calculation | Result |
|---|---|---|
| Annual coupon (C) | 4.5% × $1,000 | $45.00 |
| Discount to face (F − P) | $1,000 − $946.30 | $53.70 |
| Discount spread per year | $53.70 ÷ 6 | $8.95 |
| Numerator: C + (F − P)/n | $45.00 + $8.95 | $53.95 |
| Denominator: (F + P)/2 | ($1,000 + $946.30) ÷ 2 | $973.15 |
| YTM approximation | $53.95 ÷ $973.15 | 0.05544 ≈ 5.54% |
Now the exact answer. In a spreadsheet, =RATE(6, 45, -946.30, 1000) iterates on the pricing equation and returns y = 5.578%, about 5.58%. You can verify it: discounting six $45 coupons and the $1,000 face value at 5.578% gives a present value of $946.28 — the market price to within two cents of rounding.
So the approximation lands at 5.54% against an exact 5.58% — off by roughly 0.03 percentage points. That is typical: the shortcut is reliable near par with moderate maturities, and drifts for long maturities and deep discounts or premiums, because averaging ignores compounding. Estimate and sanity-check with it; report the RATE answer when precision matters.
Students lose points by mixing up three rates that all describe the same bond. Using the bond above:
The ordering is a useful self-check. For a discount bond, coupon rate < current yield < YTM, exactly as here (4.50% < 4.76% < 5.58%). For a premium bond the order flips, and at par all three rates are equal. If your computed YTM breaks this ordering, one of your inputs is wrong.
Treating the coupon rate as the yield. The coupon rate is set when the bond is issued and printed on the contract; YTM is set by today's price. They agree only when the bond trades exactly at par. An exam question that gives you a price other than face value is testing whether you know the difference.
Ignoring the semiannual convention. Most US bonds pay coupons twice a year. The correct treatment is to work per period — halve the coupon, double the period count, solve the pricing equation for the semiannual rate, then double that rate to quote the annual YTM (the bond-equivalent yield convention). The two classic errors are reporting the semiannual rate as if it were annual, and discounting semiannual cash flows at a full annual rate. The example above uses annual coupons to keep the steps visible; a semiannual version of the same bond would use $22.50 per period over 12 periods.
Assuming YTM is a guaranteed return. The calculation quietly assumes every coupon is reinvested at the YTM itself, the issuer never defaults, and you hold to the final payment. If reinvestment rates fall or you sell early, your realized return will differ from the YTM you computed. YTM is the bond's implied rate, not a promise.
Yield to maturity is whatever discount rate makes a bond's price equal the present value of its remaining coupons and face value. No algebra isolates that rate — estimate it with the approximation formula (average annual earnings over average investment), then let a spreadsheet's RATE function iterate to the exact answer, and check that a discount bond's YTM lands above its coupon rate.
Set the bond's price equal to the present value of its remaining coupons and face value, then solve for the discount rate that balances the equation. Because no algebraic rearrangement isolates the rate, you solve by iteration — in practice with a spreadsheet's RATE or YIELD function or a financial calculator's I/Y key. For a quick estimate by hand, use the approximation formula covered above.
Only when the bond trades exactly at face value. The coupon rate is fixed by the bond's contract; YTM depends on today's price. A bond bought at a discount has a YTM above its coupon rate, and a bond bought at a premium has a YTM below it.
Buying below face value gives you two sources of return: the coupons, and the gain as the price rises toward face value at maturity. The bond in the example pays a 4.5% coupon but was bought at $946.30, so the extra $53.70 collected at maturity pushes the total return to about 5.58%.
For a bond quoted in whole periods, use RATE: =RATE(6, 45, -946.30, 1000) returns 5.578% for the bond in the example (price entered as a negative because it is money going out). For real bonds with settlement and maturity dates, use YIELD, which handles day-count conventions. Both functions run the same iteration you would otherwise do by trial and error.
No. YTM assumes you hold to maturity, the issuer makes every payment, and each coupon is reinvested at the YTM itself. If reinvestment rates change or you sell before maturity, your realized return will differ. Treat YTM as the bond's implied rate at today's price, not a promised outcome.
Match the bond's coupon frequency. Most US bonds pay semiannually, so use half the annual coupon per period and twice the number of periods, solve for the semiannual rate, then double it to quote the annual YTM. Mixing annual discounting with semiannual cash flows is one of the most common exam errors.
By the FinanceBrain Team · Last verified July 11, 2026 · How we produce and verify articles