How to Calculate Bond Price and Yield: Formulas & Worked Examples
Learn how to calculate bond price and yield step by step: present value formula, current yield, YTM approximation, and worked examples with real numbers.
Introduction
The price of a bond is the present value of all its future cash flows: Price = C/(1+y)¹ + C/(1+y)² + … + (C + F)/(1+y)ⁿ, where C is the coupon payment per period, F is the face value, y is the market yield per period, and n is the number of periods to maturity. Yield works in reverse — it is the discount rate that makes those future payments equal the price you paid today. Everything else in bond math is a variation on those two ideas.
This guide walks through the pricing formula step by step, prices real bonds by hand (annual and semiannual), shows how to estimate yield to maturity without a financial calculator, and flags the mistakes that trip up most first-time bond buyers. If you want to run your own numbers as you read, open the Bond Calculator in another tab.
The Five Inputs Every Bond Calculation Needs
Before touching the formula, get these five values straight:
| Input | Symbol | What It Means | Typical Example |
|---|---|---|---|
| Face value (par) | F | Amount repaid at maturity | $1,000 |
| Coupon rate | — | Annual interest as % of face value, fixed at issuance | 5% |
| Coupon payment | C | Cash paid per period = face × coupon rate ÷ payments per year | $25 semiannually |
| Market yield | y | The discount rate investors currently demand, per period | 3% per half-year |
| Periods to maturity | n | Years remaining × payments per year | 10 years × 2 = 20 |
Two of these cause most confusion. The coupon rate never changes — it is printed on the bond at issuance. The market yield changes every day as interest rates move. The tension between the fixed coupon and the moving yield is exactly what makes bond prices fluctuate.
The Bond Price Formula
The full formula discounts every payment back to today:
Price = C/(1+y)^1 + C/(1+y)^2 + ... + C/(1+y)^n + F/(1+y)^n
For bonds with many periods, it is faster to split this into two present-value pieces:
Price = C × [1 − (1+y)^−n] / y + F / (1+y)^n
└── PV of the coupons ──┘ └─ PV of face value ─┘
The first term is the present value of an ordinary annuity (the coupon stream). The second is the present value of a single lump sum (the repayment of face value at maturity). Both use the same per-period yield.
Worked Example 1: Pricing an Annual-Pay Bond
The bond: $1,000 face value, 5% annual coupon ($50 per year), 3 years to maturity. Market yield on comparable bonds is 6%.
Discount each cash flow at 6%:
| Year | Cash Flow | Discount Factor | Present Value |
|---|---|---|---|
| 1 | $50 | 1 ÷ 1.06 = 0.9434 | $47.17 |
| 2 | $50 | 1 ÷ 1.06² = 0.8900 | $44.50 |
| 3 | $50 + $1,000 = $1,050 | 1 ÷ 1.06³ = 0.8396 | $881.60 |
| Price | $973.27 |
Step by step:
- Year 1: $50 ÷ 1.06 = $47.17
- Year 2: $50 ÷ 1.1236 = $44.50
- Year 3: $1,050 ÷ 1.191016 = $881.60
- Add them up: $47.17 + $44.50 + $881.60 = $973.27
The bond trades at a discount — below its $1,000 face value. That is not a flaw in the bond; it is the market doing its job. The bond pays only 5% while investors can get 6% elsewhere, so the price must drop until a buyer at $973.27 earns 6% overall (5% in coupons plus a built-in $26.73 gain at maturity).
Worked Example 2: Semiannual Coupons (the Real-World Standard)
Most US corporate and Treasury bonds pay interest twice a year, so you must convert everything to per-period terms: halve the coupon, halve the yield, double the number of periods.
The bond: $1,000 face value, 4% coupon paid semiannually, 2 years to maturity. Market yield is 6% (annual, bond-equivalent).
Convert the inputs:
- Coupon per period: 4% × $1,000 ÷ 2 = $20
- Yield per period: 6% ÷ 2 = 3%
- Number of periods: 2 years × 2 = 4
Now use the two-part formula:
PV of coupons = $20 × [1 − (1.03)⁻⁴] ÷ 0.03
- 1.03⁴ = 1.12551, so (1.03)⁻⁴ = 0.88849
- 1 − 0.88849 = 0.11151
- 0.11151 ÷ 0.03 = 3.7171 (the annuity factor)
- $20 × 3.7171 = $74.34
PV of face value = $1,000 × 0.88849 = $888.49
Price = $74.34 + $888.49 = $962.83
Again a discount, and for the same reason: a 4% coupon cannot compete with a 6% market yield, so the price falls until the buyer’s all-in return is 6%.
Zero-coupon shortcut. A zero-coupon bond drops the annuity term entirely — it is just the lump-sum piece. A $1,000 zero maturing in 10 years priced to yield 4% annually costs $1,000 ÷ 1.04¹⁰ = $1,000 ÷ 1.48024 = $675.56. The entire return comes from the pull to par.
The Price-Yield Seesaw
Price and yield move in opposite directions, always. Where the coupon sits relative to the market yield tells you instantly whether a bond trades above, at, or below face value:
| Relationship | Bond Trades At | Example (3-yr, $1,000 face, annual pay) |
|---|---|---|
| Coupon > market yield | Premium (above par) | 7% coupon, 5% yield → price $1,054.47 |
| Coupon = market yield | Par (face value) | 6% coupon, 6% yield → price $1,000.00 |
| Coupon < market yield | Discount (below par) | 5% coupon, 6% yield → price $973.27 |
The premium case is worth checking by hand once: $70 ÷ 1.05 + $70 ÷ 1.05² + $1,070 ÷ 1.05³ = $66.67 + $63.49 + $924.31 = $1,054.47. Buyers happily pay above face value because the fat 7% coupon more than compensates for the guaranteed $54.47 loss at maturity — the net return works out to exactly 5%.
Also note: the longer the maturity, the harder the seesaw swings. A 1-point rise in yields barely dents a 2-year bond but can knock 15% or more off a 30-year bond’s price, because more distant cash flows suffer more from a higher discount rate. This sensitivity is what the term duration measures.
Measuring Yield: Three Numbers, Three Meanings
“Yield” gets used loosely. Three distinct measures matter, and they answer different questions:
1. Coupon rate (nominal yield) — annual coupon ÷ face value. Fixed forever. A $1,000 bond paying $60 a year has a 6% coupon regardless of what you paid for it. This tells you about the cash flow, not your return.
2. Current yield — annual coupon ÷ current market price. If that same bond trades at $950:
Current yield = $60 ÷ $950 = 6.32%
Useful as a quick income snapshot, but it ignores the $50 gain you lock in by buying below face value, and it ignores time to maturity entirely.
3. Yield to maturity (YTM) — the discount rate that sets the present value of all remaining payments equal to today’s price. It captures coupons, the gain or loss to par, and the time value of money. YTM is the number to use when comparing bonds, and it is what “yield” means on nearly every quote screen.
There is no algebraic way to solve the pricing equation backwards for YTM — calculators and spreadsheets find it by iteration. But you can get close by hand.
Worked Example 3: Estimating Yield to Maturity
The standard YTM approximation formula:
YTM ≈ [C + (F − P) / n] ÷ [(F + P) / 2]
where C is the annual coupon in dollars, F is face value, P is the current price, and n is years to maturity. The numerator is your average annual earnings (coupon plus the amortized gain or loss to par); the denominator is your average investment.
The bond: trading at $920, face value $1,000, $60 annual coupon, 5 years to maturity.
- Annual gain to par: ($1,000 − $920) ÷ 5 = $16 per year
- Average annual earnings: $60 + $16 = $76
- Average investment: ($1,000 + $920) ÷ 2 = $960
- YTM ≈ $76 ÷ $960 = 7.92%
How good is the estimate? Discount the bond’s cash flows at exactly 8%: the coupon annuity is worth $60 × 3.9927 = $239.56 and the face value is worth $1,000 ÷ 1.08⁵ = $680.58, for a total of $920.15 — almost exactly the $920 market price. So the true YTM is right about 8.0%, and the shortcut landed within a tenth of a point. For screening bonds, that is plenty; for an actual trade, let the Bond Calculator or a spreadsheet iterate to the exact figure.
Callable bonds need one more check. If the issuer can redeem the bond early at a set call price, compute yield to call the same way but with the call date as n and the call price as F. The lower of YTM and yield to call — the yield to worst — is the conservative number to base decisions on, because issuers reliably call bonds precisely when it hurts you (i.e., when rates have fallen).
Common Mistakes to Avoid
- Confusing coupon rate with your return. If you pay anything other than face value, your actual return is the YTM, not the coupon. Buying a 6% coupon bond at a premium of $1,080 might earn you closer to 4%.
- Forgetting the semiannual convention. Using annual figures on a bond that pays twice a year misprices it. Halve the coupon and the yield, double the periods — every time.
- Discounting at the coupon rate instead of the market yield. The coupon determines the cash flows; the market yield is the discount rate. Mixing them up guarantees a price of exactly par, which is wrong whenever the two rates differ.
- Ignoring accrued interest. Quoted (clean) prices exclude interest earned since the last coupon date. Your actual settlement cost is the dirty price — clean price plus accrued interest — so budget for it.
- Comparing current yield to YTM. Current yield overstates the attractiveness of premium bonds and understates discount bonds because it ignores the pull to par. Compare YTM to YTM.
- Overlooking call provisions. A juicy YTM means little if the bond gets called in two years at par. Always check yield to worst on callable bonds.
- Treating YTM as guaranteed. It assumes you reinvest every coupon at the YTM rate and that the issuer never misses a payment. Reinvestment risk and credit risk are real, especially on long maturities and lower-rated issuers.
- Entering percentages instead of decimals. In the formulas, 6% is 0.06. Typing 6 turns a discount rate into a 600% rate and produces nonsense.
Putting It Into Practice
Bond math boils down to one discipline: every payment gets discounted back to today at the market yield, and the yield is whatever rate makes the math balance against the price. Master the two worked patterns above — the annuity-plus-lump-sum pricing method and the YTM approximation — and you can sanity-check any quote a broker shows you.
Run your own scenarios with the free Bond Calculator: change the yield by a point and watch the price seesaw, or compare a short bond against a long one to see duration in action. And since discounting and compounding are two sides of the same coin, the companion guides on how to calculate compound interest and how to calculate ROI will round out the toolkit for evaluating any fixed-income position against its alternatives.
Frequently Asked Questions
What is the difference between coupon rate and yield to maturity? +
The coupon rate is fixed at issuance and tells you the annual cash interest as a percentage of face value — a 5% coupon on a $1,000 bond pays $50 per year no matter what. Yield to maturity is the total annualized return you earn if you buy at the current market price and hold to maturity, so it accounts for the price you actually paid and any gain or loss when the bond repays face value. The two are equal only when the bond trades exactly at par.
Why do bond prices fall when interest rates rise? +
A bond price is the present value of its fixed future payments, and those payments are discounted at current market rates. When rates rise, each future coupon and the face value are divided by a larger discount factor, so the present value shrinks. Existing bonds must fall in price until their yield matches what new bonds offer, otherwise nobody would buy them.
What is the difference between clean price and dirty price? +
The clean price is the quoted price of the bond excluding interest that has accrued since the last coupon date. The dirty price, also called the invoice price, is what you actually pay: clean price plus accrued interest owed to the seller. Quotes on broker screens are almost always clean prices, so the cash leaving your account will usually be higher than the quote.
Is yield to maturity a guaranteed return? +
No. YTM assumes three things: you hold the bond to maturity, the issuer makes every payment on time, and you reinvest each coupon at the same YTM rate. If you sell early, the issuer defaults, or reinvestment rates drop, your realized return will differ. Treat YTM as a standardized comparison tool, not a promise.
How do I calculate bond price and yield in Excel or Google Sheets? +
For price, use =PV(rate, nper, pmt, fv) with the per-period yield, number of periods, coupon per period, and face value — the result appears as a negative number by convention. For yield, use =RATE(nper, pmt, -price, fv) and multiply by the number of coupon periods per year, or use the dedicated YIELD function with settlement and maturity dates for exact day-count handling.
Daniel Agrici
NovaCalculator Editorial Team
Our writers combine mathematical expertise with clear writing to make calculations accessible to everyone. Content is checked against authoritative sources including NIST, WHO, and CFPB.
Try the Calculator
Bond Calculator
Use the free tool to calculate instantly — no signup needed.