Bond YTM Calculator

Yield to Maturity, clean/dirty price, accrued interest, Macaulay & modified duration, and convexity for fixed-income bonds. Semi-annual and annual conventions supported.

Bond Inputs

$
%
$
Market price excluding accrued interest. For a $1,000 face bond quoted at "95", enter 950.

Accrued Interest (optional)

Yield to Maturity
USD
Clean Price
Dirty Price
Accrued Interest
Current Yield
Annual Coupon
Macaulay Duration
Modified Duration
Convexity

What Is Yield to Maturity?

Yield to Maturity (YTM) is the single annualized discount rate that equates the present value of a bond's remaining cash flows to its current price. Every fixed-income analyst builds from this number. Formally:

Price = Σ [C / (1 + y/m)t·m] + F / (1 + y/m)n·m

Where C is the coupon per period, F is face value, m is coupons per year, n is years to maturity, and y is the annualized YTM we're solving for. Because YTM appears inside the exponent, the equation has no closed-form solution — this calculator uses Newton-Raphson iteration.

Clean Price vs Dirty Price

Bond quotes on exchanges (like Bloomberg or TRACE) are clean prices — stripped of accrued coupon interest. But what you actually pay when settling a trade is the dirty price:

Dirty Price = Clean Price + Accrued Interest

Accrued interest accumulates linearly from the last coupon date:

AI = (Coupon per period) × (days since last coupon) / (days in period)

For US Treasury bonds, the convention is Actual/Actual. For corporate bonds, typically 30/360. Enter the day counts manually above for custom conventions.

Current Yield vs YTM

Current yield is a rough approximation — just annual coupon / clean price. It ignores capital gains or losses from buying at a premium or discount to par. For a bond trading below par, YTM > current yield (you gain capital as price pulls to 100). For a premium bond, YTM < current yield.

Duration — Interest Rate Sensitivity

Macaulay Duration is the weighted-average time until you receive the bond's cash flows, measured in years. It's a natural-time version of the bond's "effective maturity."

Modified Duration is what traders use day to day: it approximates the percentage price change for a small yield change.

Modified Duration = Macaulay Duration / (1 + y/m)

ΔP/P ≈ −Modified Duration × Δy

A mod duration of 8 means: if yields rise by 100bp (1%), the bond price falls ~8%. For risk management, long-duration bonds are dangerous in a rising-rate environment.

Convexity — The Second-Order Correction

Duration is a linear approximation. For large yield moves, the price-yield curve is noticeably convex, which means:

  • When yields fall, the price rises more than duration predicts.
  • When yields rise, the price falls less than duration predicts.

Convexity captures this. Full second-order approximation:

ΔP/P ≈ −Dmod·Δy + 0.5·C·(Δy)²

High convexity is bondholder-friendly. All else equal, prefer higher convexity per unit of duration.

Worked Example

A 10-year Treasury with $1,000 face, 5% semi-annual coupon, trading at $950 (clean). This calculator returns:

  • YTM ≈ 5.67%
  • Current Yield ≈ 5.26%
  • Modified Duration ≈ 7.6 years
  • Convexity ≈ 70

A 100bp rate rise would cost roughly 7.6% in price — offset by about 0.35% from convexity — netting a ~7.25% loss.

Regional Notes

  • US Treasuries & corporates: semi-annual coupons, Actual/Actual (for Treasuries) or 30/360.
  • European sovereigns (Bunds, OATs, Gilts): annual coupons standard.
  • Indonesian ORI / SBR / Sukuk: monthly coupons are common. Use frequency = 12.
  • Chinese CGBs: semi-annual for some, annual for others — check the term sheet.
  • Japanese JGBs: semi-annual.

Limitations

This calculator assumes a single flat yield curve and no default risk. For credit bonds, use a spread over the risk-free curve to get Z-spread or OAS. For callable bonds, use effective duration (not modified). For bond portfolios with multiple issues, composite duration is weight-averaged — see the VaRisk Kancil platform for portfolio-level FRTB bond analytics.

Related Tools