Enter a bond's face value, coupon rate, current price, years to maturity, and payment frequency to numerically solve its yield to maturity.
How to Use the Yield to Maturity Calculator
Enter face value, annual coupon rate, current price, and years to maturity, then pick a payment frequency; the calculator numerically solves for the true yield to maturity and shows the quick approximation alongside it for comparison.
Yield to maturity is defined by an equation with no algebraic solution: the periodic rate that makes a bond's discounted coupons plus discounted face value equal exactly what it costs today. There's no formula to rearrange for it directly — it has to be found by search.
The Equation Being Solved
Price = Σ [Coupon ÷ (1+y)ᵗ] for t = 1 to n + Face Value ÷ (1+y)ⁿ
where y is the periodic yield being solved for, Coupon is the coupon paid per period, and n is the total number of periods. This is the exact same relationship the Bond Price Calculator uses in the opposite direction — feed it a yield and it returns a price; this tool runs it backwards, taking a price and searching for the yield that produces it.
How the Search Works
The calculator brackets a wide range of plausible periodic yields — 0.01% to 50% per period — checks that the bond's computed price crosses the target price somewhere inside that range, then repeatedly narrows the range in half: whichever side still contains the crossing point survives, the other gets discarded. About sixty rounds of halving narrows an initial spread of fifty percentage points down to a gap far finer than a rounding error, at which point the midpoint is reported as the answer. It's the same bisection approach this site's IRR Calculator uses for exactly the same reason — the underlying equation has no closed-form inverse either way.
Once the periodic yield is found, it's annualized by multiplying by the number of payments per year:
Annual YTM = y × Payments per Year × 100
Why Bother, When an Approximation Exists
The quick-estimate formula shown alongside the solved YTM is convenient but structurally biased — it amortizes the discount or premium in a straight line across the bond's remaining life, when the real math discounts each future dollar individually. For a bond close to par with years left to run, the gap between the two is small enough to ignore. For a deeply discounted bond near maturity, they can diverge by a meaningful fraction of a percentage point — exactly the situation where solving the real equation, instead of estimating it, actually matters.
Run the default numbers — $1,000 face, 5% coupon, $950 price, ten years, semiannual — and the solved yield to maturity lands around 5.66% a year, against a quick estimate of about 5.64%. Barely a difference here, because the discount is modest and the term is long enough to smooth it out; shorten the bond to two years at the same price and the two figures separate by a noticeably wider margin, since that same $50 discount now has to be earned back far faster.