Calculate coupon-date price or yield for a level-coupon bond, plus current yield, duration and DV01. Between-coupon settlement, accrued interest and dirty-price calculations are not supported.
Advanced options
How to use our Bond Calculator
- Pick Solve for: choose Price (given yield) or YTM (given price).
- Enter Face value (USD) (often 1000) and Annual coupon rate (percent) (example: 5 means 5% per year).
- Enter Years to maturity (years) and choose Coupon payments per year (1, 2, 4, or 12).
- If solving for price, enter Yield to maturity (YTM) (percent per year).
- If solving for YTM, enter Current clean price (USD). (Clean price is the quoted price that excludes accrued interest.)
- Keep Include accrued interest set to No for a coupon-date valuation. This tool does not produce between-coupon settlement estimates.
- If settlement falls between coupon dates, use a calculator with a complete dated cash-flow schedule and the bond's day-count convention.
- Click Calculate. Use the cash flow table to confirm the present values add up to the clean price (small rounding differences are normal).
Definitions
Bond: A loan you give to an issuer. You get coupon payments and then your face value back at maturity.
Face value (par): The amount paid back at maturity (like 1000 USD).
Coupon rate: The yearly interest percent of face value that sets the coupon dollars you receive.
Coupon payment (per period): The coupon dollars paid each payment period (for example, every 6 months if payments per year is 2).
Yield to maturity (YTM): The annual yield, under the selected compounding convention, that equates the regular future payments to price on a coupon date. [1]
Discounting (present value): Converting future dollars into an equivalent value today using a yield (a discount rate).
Clean price: Bond price excluding accrued interest (this is often what is quoted).
Dirty price: Clean price plus accrued interest (this is closer to the cash you pay at settlement).
Accrued interest: Coupon interest earned since the last coupon date up to settlement.
Current yield: Annual coupon dollars divided by clean price; it ignores the extra gain/loss from moving toward face value by maturity. [2]
Duration: A time-based measure used to estimate how sensitive price is to yield changes (higher duration usually means more sensitivity).
DV01: Approximate dollar price change for a 1 basis point (0.01%) change in yield.
Methodology
What this calculator prices
This model values level coupons and redemption at regular whole payment periods, immediately after a coupon payment. At that point accrued interest is zero, so clean and dirty prices coincide. It is not a settlement-date bond-pricing model.
Inputs and setup
payments_per_year must be one of {1, 2, 4, 12}
N = years_to_maturity * payments_per_year (must be a whole number)
coupon_per_period = face_value * (coupon_rate_annual/100) / payments_per_year
Price from yield (clean price)
If the yield compounding convention is compounded per coupon period, the per-period yield is the annual quoted yield divided by payments per year.
y_per_period = (ytm_annual/100) / payments_per_year
clean_price = sum_{k=1..N} [ CF_k / (1 + y_per_period)^k ]
CF_k = coupon_per_period (for k < N), and CF_N = coupon_per_period + face_value
Yield to maturity (solve from clean price)
When solving for YTM, the calculator finds the annual yield that makes the model price match the target clean price. It uses a robust bracketed root find (bisection, with an optional Newton step for speed). If negative yields are not allowed and the implied yield would be negative, the tool returns N/A with an explanation. [1]
Find ytm_annual such that price_from_yield(ytm_annual) - target_clean_price = 0
Current yield
Current yield is a simple ratio (it is not the same as YTM). [2]
current_yield_percent = (face_value * (coupon_rate_annual/100) / clean_price) * 100
Accrued interest and dirty price (optional)
The former accrued-interest option did not shift the timing of discounted cash flows and misapplied some day-count conventions. It is now withheld rather than adding accrual to a coupon-date price.
Accrued interest is zero on the supported coupon-date valuation basis.
dirty_price = clean_price + accrued_interest
Duration and DV01 (rate sensitivity)
Macaulay duration is computed from the same period-based present values used in pricing. Modified duration adjusts Macaulay duration to better approximate price sensitivity for small yield moves.
PV_k = CF_k / (1 + y_per_period)^k
D_mac_years = (1/payments_per_year) * [ sum_{k=1..N} (k * PV_k) ] / clean_price
D_mod_years = D_mac_years / (1 + y_per_period)
DV01 is computed with a symmetric 1 basis point bump to the quoted annual yield (more stable than a single-sided bump).
1bp = 0.0001 (decimal annual yield)
dv01 = abs( (P(y - 1bp) - P(y + 1bp)) / 2 )
Cash flow schedule (summary table)
The table lists each period's cash flow and its present value at the computed yield. The sum of present values should match the clean price within rounding.