Bond Calculator
Calculate a bond's clean price, dirty price, and yield to maturity from its face value, coupon rate, market yield, coupon frequency, and years to maturity.
How It's Calculated
Formula
\text{Coupon-Date PV} = \sum_{t=1}^{N} \frac{C}{(1+r)^t} + \frac{\text{Face Value}}{(1+r)^N}, \qquad \text{Dirty Price} = \text{Coupon-Date PV} \times (1+r)^{a}, \qquad \text{Accrued Interest} = C \times a, \qquad \text{Clean Price} = \text{Dirty Price} - \text{Accrued Interest}This calculator prices a bond from its face value, coupon rate, market yield, coupon frequency, and years to maturity. The entered market yield is used as the bond's yield to maturity (YTM) for this pricing estimate — it is not solved from a market price, since this calculator has no market-price input. Each coupon payment (C = face value × coupon rate ÷ coupon frequency) and the final face-value repayment are discounted back to the LAST coupon date at the periodic market yield (r = market yield ÷ coupon frequency) over N total coupon periods (years to maturity × coupon frequency); summing those gives the coupon-date present value. Because settlement (today) generally falls partway through the current coupon period — the fraction you enter as "accruedFraction" (a) — that coupon-date value is grown forward to settlement by a factor of (1+r) raised to the power a, which is what actually discounts every remaining cash flow from settlement rather than from the last coupon date. That grown-forward value is the dirty price, the price an actual buyer would pay. Accrued interest — the coupon interest that has built up since the last payment but hasn't been paid yet — is estimated here as the periodic coupon payment times the accrued fraction (a simplified linear model, not a settlement-date/day-count calculation). Subtracting accrued interest from the dirty price gives the clean price, the conventionally quoted price with accrued interest stripped out.
Worked Examples
Par bond, settled on a coupon date: $1,000 face, 5% coupon, 5% market yield, 10 years, annual coupons
- Coupon rate equals market yield, so this bond prices at par.
- Periodic coupon C = $1,000 × 5% ÷ 1 = $50 per year.
- Periodic yield r = 5% ÷ 1 = 5%. Number of periods N = 10 × 1 = 10.
- Coupon-date PV = sum of 10 discounted $50 coupons + $1,000 discounted at 5% for 10 years = $1,000.00.
- accruedFraction = 0, so dirty price = coupon-date PV × (1.05)^0 = $1,000.00 and accrued interest = $0.00 — clean price equals dirty price exactly at a coupon date.
Premium bond, settled on a coupon date: $1,000 face, 7% coupon, 5% market yield, 10 years, semiannual coupons
- Periodic coupon C = $1,000 × 7% ÷ 2 = $35 per period.
- Periodic yield r = 5% ÷ 2 = 2.5%. Number of periods N = 10 × 2 = 20.
- Because the coupon rate (7%) exceeds the market yield (5%), the coupon-date PV is above face value: $1,155.89.
- accruedFraction = 0, so dirty price = clean price = $1,155.89.
Fractional-period settlement: $1,000 face, 6% coupon, 5% market yield, 10 years, quarterly coupons, 40% through the current period
- Periodic coupon C = $1,000 × 6% ÷ 4 = $15 per period. Periodic yield r = 5% ÷ 4 = 1.25%. N = 10 × 4 = 40 periods.
- Coupon-date PV of the remaining 40 coupons plus face value ≈ $1,078.32, valued as of the LAST coupon date.
- Settlement is 40% into the current coupon period (accruedFraction = 0.40), so the coupon-date PV is grown forward to settlement: dirty price = $1,078.32 × (1.0125)^0.40 ≈ $1,083.69.
- Accrued interest = $15 × 0.40 = $6.00 (unchanged simple linear model — not a day-count calculation).
- Clean price = dirty price − accrued interest ≈ $1,083.69 − $6.00 = $1,077.69.
Frequently Asked Questions
Where does the yield to maturity (YTM) come from?
The market yield you enter IS this bond's YTM for this calculator — it's used directly for pricing, not solved backward from a market price. This calculator deliberately has no market-price input and does not run a numerical YTM solver.
What's the difference between clean price and dirty price?
The dirty price is the present value of the bond's remaining coupons and face value, discounted from your actual settlement point — which can fall between coupon dates, at the fraction of the current period you enter — and is the price an actual buyer would pay. The clean price subtracts accrued interest (the coupon interest built up since the last payment but not yet paid) from the dirty price, giving the conventionally quoted price with that built-up interest stripped out. At a coupon date itself (accruedFraction = 0) clean and dirty price are identical.
How is accrued interest calculated here, and how does it affect pricing between coupon dates?
Accrued interest is the periodic coupon payment multiplied by the fraction of the current coupon period you enter (0 = right after a coupon, 1 = right before the next one) — a simplified linear estimate, not a settlement-date/day-count convention (e.g. 30/360 or actual/actual) real bond markets use. Separately, because settlement between coupon dates changes how far in the future every remaining cash flow actually is, this calculator also discounts the whole remaining cash-flow schedule from your settlement point (not just from the last coupon date) before adding or removing accrued interest — so both the timing and the accrued-interest add-on are reflected in dirty and clean price.
What coupon frequencies are supported?
Annual, semiannual, and quarterly. Years to maturity must combine with the chosen frequency to produce a whole number of coupon periods — for example, 10 years at a semiannual frequency gives 20 periods, but 1.3 years at an annual frequency does not give a whole number of periods and will not calculate.
What happens when the market yield is 0%?
With a 0% yield, no discounting applies: the clean price is simply the sum of every coupon payment plus the face value, with no divide-by-zero issue.