Quick answer
This calculator takes a bond's face value, coupon rate, current price, years to maturity and payments per year. It returns the yearly coupon income, the current yield (coupon income ÷ price) and the yield to maturity — the single rate that makes all remaining payments worth today's price [1].
Key points
- Coupon income = face value × coupon rate, and it does not change with the price.
- Current yield = coupon income ÷ current price.
- Yield to maturity (YTM) also counts the gain or loss between today's price and the face value paid at maturity.
- A bond priced below face value has a YTM above its coupon rate; above face value, below it.
- YTM assumes every payment arrives on time and the bond is held to maturity.
#What does this calculator measure?
When you buy a bond, the issuer promises to pay interest during the bond's life and to repay the principal — the face value or par value — when it matures [2]. The interest rate set at issue is the coupon rate, which FINRA describes as fixed for the life of the bond [1]. But bonds trade at prices above or below face value, so the coupon rate alone does not tell you what you earn at today's price.
The calculator has five inputs: Face value, Annual coupon rate, Current price, Years to maturity and Payments per year (1 or 2). It returns annual coupon income, current yield, yield to maturity and the yield per period behind it.
#How does the calculation work?
- Annual coupon income = face value × coupon rate.
- Current yield (%) = annual coupon income ÷ current price × 100. FINRA defines it as the coupon divided by the current market price [1].
- Yield to maturity is the per-period rate y that makes the bond's remaining payments, discounted back to today, equal the current price: price = Σ coupon per period ÷ (1 + y)^t + face value ÷ (1 + y)^n, where n = years × payments per year and coupon per period = annual coupon income ÷ payments per year.
There is no simple formula for y, so the calculator finds it by bisection: it guesses a low and a high rate, checks which side of the price the midpoint lands on, halves the gap, and repeats until the price matches. The answer is then annualized as y × payments per year, the usual way bond yields are quoted. FINRA describes YTM as the overall rate earned by someone who buys at the market price and holds to maturity, and notes it assumes payments are made on time [1].
Worked example
Worked example: a 5% bond bought at $950
Face value $1,000 · Annual coupon rate 5% · Current price $950 · Years to maturity 10 · Payments per year 2. Calculated in Python using bisection.
- Annual coupon income ($1,000 × 5%)
- $50.00
- Coupon per payment ($50 ÷ 2)
- $25.00
- Current yield ($50 ÷ $950 × 100)
- 5.26%
- Yield per half-year found by bisection
- 2.8308%
- Yield to maturity (2.8308% × 2)
- 5.66%
Bought at $950, this bond's YTM is about 5.66% — higher than the 5% coupon, because the buyer also gains $50 when $1,000 is repaid at maturity.
Hypothetical bond. Assumes every payment is made on time and the bond is held for all 10 years; before taxes and trading costs.
As a cross-check, FINRA's own example — a $45 coupon on a bond trading at $1,030 — gives a current yield of 4.37% [1]. Our formula returns the same 4.37%.
#Why do price and yield move in opposite directions?
The payments are fixed, so paying more for them means a lower return, and paying less means a higher one. FINRA puts it plainly: "Price and yield are inversely related" [1]. The table keeps the bond from the example and changes only the price.
| Price | Current yield | Yield to maturity |
|---|---|---|
| $900 | 5.56% | 6.37% |
| $950 | 5.26% | 5.66% |
| $1,000 | 5.00% | 5.00% |
| $1,050 | 4.76% | 4.38% |
| $1,100 | 4.55% | 3.79% |
Yield to maturity at each price
#What this calculator leaves out
- Default risk. The issuer may fail to make interest or principal payments on time [2]. YTM assumes it will not.
- Selling early. If you sell before maturity, the bond may be worth more or less than face value [2], so your actual return can differ from YTM.
- Reinvestment. YTM calculations generally assume coupons are reinvested, and FINRA notes that reinvesting each payment at the same rate is virtually impossible because rates fluctuate [1].
- Calls, accrued interest, taxes and fees. Callable bonds, interest owed between payment dates, taxes and trading costs are not modeled.
What's the bottom line?
Coupon rate, current yield and yield to maturity answer three different questions about the same bond. This calculator shows all three and how they spread apart as the price moves away from face value. To go deeper, read bond yields explained and bond prices and interest rates.
Frequently asked questions
Why is YTM different from the current yield?
Current yield looks only at this year's coupon relative to the price. YTM also counts the gain or loss you lock in by buying below or above face value and holding until it is repaid.
Why does the tool multiply the half-year yield by 2?
That is the common quoting convention for bonds that pay twice a year. It is slightly lower than a fully compounded annual rate, but it lets you compare bonds on the same basis.
What price should I enter?
The price you would pay for the bond, in dollars. Bond quotes are often shown as a percentage of face value, so a quote of 95 on a $1,000 bond means $950.
Does this work for Treasury bonds?
The math is the same for any bond with fixed coupons. It does not handle inflation-indexed bonds, zero-coupon pricing conventions or callable features.
Sources
Grade A = primary source (regulator, government agency, official rulebook or the index provider's own documents). Numbers in brackets in the text point here.
- FINRA. Understanding Bond Yield and Return (2026). Accessed 2026-10-03.A
- U.S. SEC — Investor.gov. Bonds – FAQs (2026). Accessed 2026-10-03.A
This page is general education, not personal financial, tax or legal advice. Figures in worked examples are hypothetical and calculated before taxes and fees unless stated. Rules and limits change; check the linked primary sources for the current version. How we check every page.



