Bond pricing, in short
A bond's price is just the present value of everything it will pay you — every coupon plus the face value at maturity — discounted at the market's required yield. When that yield is higher than the bond's coupon rate, the bond prices below face value (a discount); when it's lower, the bond prices above face value (a premium); when they match exactly, the bond prices at exactly face value (par).
Key takeaways
- A $1,000 face value, 5% coupon, 10-year bond priced at a 6% required yield (semi-annual payments) is worth about $925.61 — trading at a discount because the yield exceeds the coupon.
- Drop the required yield to exactly 5% — matching the coupon — and the price lands at exactly $1,000, right at par. That's a useful sanity check any bond pricing formula should pass.
- Move the yield from 6% down to 5% and the price jumps from $925.61 to $1,000.00 — a $74.39 swing from a single percentage point, driven by a modified duration of about 7.67.
- Coupon rate (5%), current yield (5.4%), and YTM (6%) are three different numbers on the same bond — only YTM captures the full picture, including the price gain to par at maturity.
Coupon rate, current yield, and YTM are three different numbers
Coupon rate is fixed the day the bond is issued and never changes — it just sets the dollar amount of each payment. Current yield divides the annual coupon by today's market price, so it drifts as the price drifts. Yield to maturity is the most complete figure: it accounts for every remaining coupon plus whatever gain or loss you'll realize when the bond returns to face value at maturity. On the default example, that's 5% coupon, 5.4% current yield, and 6% YTM — three legitimate but different answers to "what does this bond pay?"
How this calculator prices a bond
Using the defaults — $1,000 face value, 5% coupon, 10 years, semi-annual payments, 6% required yield:
Coupon per period = $1,000 × 5% ÷ 2 = $25
PV of 20 coupon payments (at 3% per period) ≈ $371.94
PV of $1,000 face value, 20 periods out ≈ $553.68
Bond price = $371.94 + $553.68 ≈ $925.61
Current yield on that price works out to $50 ÷ $925.61 ≈ 5.4%, and Macaulay duration comes to 7.89 years.
Why bond prices move opposite to interest rates
A bond locks in its coupon at issuance, but the market's required yield keeps moving with prevailing rates. If new bonds start offering more than your fixed coupon, nobody will pay full face value for yours — its price has to fall until its yield catches up to the new normal. Run the numbers: at a 6% required yield, the $1,000/5%/10-year bond prices at $925.61; drop the required yield to 5% (matching the coupon) and the price rises to exactly $1,000.00 — a $74.39 move from one percentage point of rate change.
What duration is actually measuring
Macaulay duration is the weighted-average time until you receive the bond's cash flows — 7.89 years on the default example, shorter than the 10-year maturity because coupons arrive along the way, not just at the end. Modified duration (7.67 here) converts that into a direct sensitivity estimate: roughly a 7.67% price move for every 1-percentage-point change in yield. It's an approximation, most accurate for small rate changes, but it's the standard quick way to compare how much two different bonds would react to the same rate move.
Where this calculator's assumptions break down
Standard YTM assumes you hold to maturity and reinvest every coupon at that same yield — neither is guaranteed in practice. Callable bonds add another wrinkle: the issuer can redeem early, so yield-to-call or yield-to-worst often matters more than plain YTM for those. None of this reflects credit risk either — a bond's price and yield here assume the issuer pays exactly as promised, which is a much safer bet for a Treasury than for a lower-rated corporate issuer.
Related calculators
For a fixed-rate deposit without market price swings, see the CD calculator. The underlying present-value math also shows up on its own in the present value calculator and future value calculator.