Skip to main content

Bond Yield to Maturity Calculator

Calculate a bond's yield to maturity (precise, iteratively solved, and the standard approximate formula), current yield, capital gain or loss, and total return from its price, face value, coupon rate, term, and payment frequency — plus a year-by-year discounted cash-flow schedule.

Input

Output

Summary
MetricValue
No data yet
Year-by-Year Discounted Cash Flow
YearCoupon ReceivedPV of Year's Cash FlowsCumulative PV
No data yet
Was this helpful?

Guides

What is yield to maturity?

Yield to maturity (YTM) is the total annualized return a bond earns if you buy it at its current market price and hold it until it matures — coupon payments plus the gain or loss between what you paid and the face value you get back at redemption, all rolled into one rate. It's the number that lets you compare a discount bond, a premium bond, and a bond trading at par on equal footing, since the coupon rate alone doesn't capture what you actually paid for it.

How this tool works

  1. Enter the bond's current price — what it's trading for today, not its face value.
  2. Enter the face value (par value) — what you'll be paid at maturity.
  3. Enter the annual coupon rate as a percentage of face value.
  4. Set years to maturity and how often coupons are paid per year (annually, semi-annually, quarterly, or monthly).
  5. Choose a currency for the formatted output.

The Summary table shows current yield, the standard approximate YTM formula, the precise YTM (solved iteratively so it accounts for the actual payment frequency), capital gain or loss at maturity, and total return over the holding period. The Year-by-Year Discounted Cash Flow table breaks the term into yearly rows, discounting each year's coupons at the solved yield — the running cumulative present value lands exactly back at the bond's current price by the final year, which is a built-in check that the yield was solved correctly.

The math

Bond pricing values every future cash flow at the same periodic discount rate: Price = Σ [coupon / (1+r)^t] + [face value / (1+r)^n], summed over each of the n coupon periods, where r is the periodic yield (annual YTM ÷ payments per year). Since price falls as yield rises, this tool solves for YTM by bisection — narrowing a bracket around the yield that reproduces the bond's actual price — which always converges for a valid bond, unlike Newton's method, which needs a derivative and can diverge from a bad starting guess.

The approximate YTM is the standard textbook shortcut, [coupon + (face value − price) ÷ years] ÷ [(face value + price) ÷ 2], which assumes annual compounding regardless of the real payment frequency — shown alongside the precise result so you can see how far the shortcut drifts from it, especially on bonds with frequent coupons or long terms.

Current yield vs. yield to maturity

Current yield is just the annual coupon divided by the price — it ignores the capital gain or loss you'll realize at maturity entirely. A bond trading at a discount has a current yield lower than its YTM (you also gain the difference between price and face value); a premium bond has a current yield higher than its YTM (you lose that difference). YTM is the more complete number for comparing bonds bought at different prices.

Common uses

  • Comparing bonds trading at different discounts or premiums on equal footing
  • Checking whether a broker-quoted YTM matches an independent calculation
  • Estimating total return on a bond held to maturity, coupons included
  • Seeing how payment frequency (semi-annual vs. monthly) shifts the precise YTM against the annual-compounding approximation

For a fixed coupon payment or interest amount rather than a full yield breakdown, use the Simple Interest Calculator. To compare a lump-sum bond purchase against a discount-rate assumption instead, use the Compound Interest Calculator.

Privacy

This tool runs entirely in your browser. Your numbers are never uploaded to a server.

bond calculatorytmytm calculatorbond yieldcurrent yieldcoupon ratebond pricefixed incomepresent valuefinance calculator

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/bond-yield-to-maturity-calculator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "bondPrice": "950",
    "faceValue": "1000",
    "couponRate": "5",
    "years": "10",
    "frequency": "2",
    "currency": "USD"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `bond-yield-to-maturity-calculator` tool (Bond Yield to Maturity Calculator) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.