Bond Price Calculator

Price a bond from its yield — or back-solve the YTM from a market price.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

A bond price calculator that works in both directions: give it the yield-to-maturity (YTM) and it prices the bond, or give it the market price and it back-solves the YTM using Newton-Raphson iteration. Beyond the headline number it also computes Macaulay duration, modified duration, convexity and the expected price change for a one-percentage-point move in yields — the three metrics every fixed-income analyst reaches for first.

Fixed-income maths is deceptively straightforward in concept but tedious by hand, especially for semi-annual or quarterly bonds where you can have 80 or 120 periods to discount. This tool automates all of that and shows its working so you can see exactly which formula produced each number.

How it works

A coupon bond is simply a stream of known cash flows: periodic interest payments plus the face value returned at maturity. Each cash flow is discounted at the bond’s yield-to-maturity — the single constant rate that, when applied to all periods, makes the present value equal the observed price.

Pricing formula

The closed-form present-value formula is:

P = C * [1 - (1 + r)^(-n)] / r   +   F * (1 + r)^(-n)

where:

  • C = periodic coupon = (face * annual_rate) / frequency
  • r = periodic yield = YTM / frequency
  • n = total periods = years * frequency
  • F = face (par) value

When r = 0 (zero yield), this simplifies to P = C * n + F.

Solving for YTM

There is no algebraic inverse of the pricing formula — the yield is found numerically. This calculator applies Newton-Raphson iteration using the closed-form price derivative (dP/dr) as the gradient, converging to within 1e-8 in fewer than 30 steps for any realistic bond. If Newton-Raphson diverges (e.g. very deep discount bonds), a bisection fallback guarantees convergence.

Duration and convexity

Macaulay duration is the present-value-weighted average time to receive each cash flow:

D_mac = sum(t * PV(CF_t)) / P   (expressed in periods, then divided by frequency to get years)

Modified duration converts this to a direct price-sensitivity metric:

D_mod = D_mac / (1 + r_periodic)

This says: if the yield moves by 1%, the price changes by approximately D_mod * 1%.

Convexity captures the curvature in the price-yield curve:

C_x = sum(t(t+1) * PV(CF_t)) / [P * (1 + r)^2 * freq^2]

The full duration + convexity approximation for a yield change of dy is:

dP ≈ -D_mod * dy * P   +   0.5 * C_x * dy^2 * P

The calculator applies this formula to show estimated prices if the YTM rises or falls by exactly one percentage point.

Worked example

A £1,000 face value bond paying a 5% annual coupon semi-annually with 10 years to maturity and a required YTM of 6%:

  • Periodic coupon: £1,000 x 5% / 2 = £25.00
  • Periodic yield: 6% / 2 = 3.00% per period
  • Number of periods: 10 x 2 = 20

Price calculation:

P = 25 * [1 - (1.03)^(-20)] / 0.03   +   1000 * (1.03)^(-20)
P = 25 * 14.877  +  1000 * 0.5537
P = 371.93  +  553.68  =  925.61

The bond trades at a discount of £74.39 because the coupon rate (5%) is below the required yield (6%). The YTM back-calculation confirms: feeding 925.61 as the market price recovers exactly 6.00%.

MetricValue
Price925.61
YTM6.00%
Current Yield5.40%
Macaulay Duration7.99 years
Modified Duration7.76 years
Price if YTM rises 1%~854.62
Price if YTM falls 1%~1,002.68

Every figure above is calculated live in your browser — nothing is sent to a server.

Ad placeholder (rectangle)