Bond Convexity Calculator
Calculate a bond's price, Macaulay and modified duration, convexity, and DV01 from its face value, coupon rate, yield to maturity, term, and payment frequency — plus a second-order (duration + convexity) price-shock estimate and a period-by-period discounted cash-flow schedule.
Input
Output
| Metric | Value |
|---|---|
| No data yet | |
| Period | Time (Years) | Cash Flow | Present Value | Weight of Price |
|---|---|---|---|---|
| No data yet | ||||
Guides
What is bond convexity?
Duration measures how much a bond's price moves for a small change in yield — but that relationship isn't actually a straight line, it curves. Convexity measures that curve: how much the duration estimate itself understates a bond's real price gain when yields fall, and overstates its real price loss when yields rise. The higher a bond's convexity, the more that cushioning effect matters — which is why two bonds with identical duration can still reprice differently after a large rate move.
How this tool works
- Enter the bond's face value and annual coupon rate.
- Enter its yield to maturity and years to maturity.
- Set how often coupons are paid per year (annually, semi-annually, quarterly, or monthly).
- Set a yield shock in basis points — the size of the rate move to stress-test against.
- Choose a currency for the formatted output.
The Summary table shows the bond's price, Macaulay duration, modified duration, convexity, and DV01 (the dollar price change for a 1 basis point yield move) — then applies the yield shock two ways: a duration-only estimate (the straight-line approximation) and a duration + convexity estimate (adding the curvature correction). The gap between the two is the convexity adjustment, and it always pulls the estimate in the bond's favor. The Period-by-Period Discounted Cash Flow table shows every coupon and the principal repayment discounted back to today, alongside each period's weight toward the bond's total price — the same weights duration is a weighted average of, made visible instead of folded into one number.
The math
Bond pricing discounts every cash flow at the periodic yield: Price = Σ CF_t / (1+r)^t, where r is the periodic rate (annual yield ÷ payments per year) and t runs over each coupon period. Macaulay duration is the present-value-weighted average time to receipt of those cash flows, in years; modified duration (Macaulay duration ÷ (1+r)) converts that into the bond's first-order price sensitivity — the straight-line slope at the current yield.
Convexity is the second-order term: Σ [t·(t+1) · PV(CF_t)] / [m² · Price · (1+r)²], where m is payments per year. A yield shock of size Δy re-prices the bond via a Taylor expansion — ΔP/P ≈ -ModDur·Δy for the duration-only estimate, or ΔP/P ≈ -ModDur·Δy + ½·Convexity·Δy² once convexity is added. That second term is always non-negative, so it consistently cushions the duration-only estimate: real bond prices rise slightly more than duration alone predicts when yields fall, and fall slightly less than duration alone predicts when yields rise.
Duration vs. convexity vs. DV01
Duration answers "how much does this bond's price move for a small yield change?" Convexity answers "how much does that sensitivity itself change as yields move further?" DV01 (dollar value of a basis point) restates modified duration in dollar terms for one specific bond position — useful for sizing a hedge, where a duration percentage isn't. A longer-maturity bond, a lower coupon, or a lower yield all push duration and convexity higher; an amortizing or callable structure (not modeled here — this tool assumes a plain fixed-coupon bullet bond) pulls both down.
Common uses
- Sizing how much a duration-only hedge underestimates or overestimates a real repricing
- Comparing two bonds with similar duration but different convexity before a rate-volatile period
- Estimating DV01 for a position size when hedging with futures or swaps
- Sanity-checking a broker-quoted convexity figure against an independent calculation
For the yield itself rather than a price-sensitivity breakdown, use the Bond Yield to Maturity Calculator. For a bond with no coupon at all, the Zero Coupon Bond Calculator is a more direct fit.
Privacy
This tool runs entirely in your browser. Your numbers are never uploaded to a server.
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/bond-convexity-calculator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"faceValue": "1000",
"couponRate": "5",
"yieldToMaturity": "6",
"years": "5",
"frequency": "2",
"yieldShockBps": "100",
"currency": "USD"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `bond-convexity-calculator` tool (Bond Convexity Calculator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.