Bond Duration Calculator
Calculate a bond's price, Macaulay and modified duration, and DV01 from its face value, coupon rate, yield to maturity, term, and payment frequency — then compare a duration-based price estimate for a yield shock against the exact repriced value, plus 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 duration?
Duration measures how sensitive a bond's price is to a change in yield — roughly, how many years it takes for the bond's cash flows to "pay you back" in present-value terms, and by extension how much its price moves for a small shift in rates. A longer-duration bond swings harder when yields move; a shorter-duration bond barely reacts. It's the single most-used risk number in fixed income for exactly that reason.
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 test.
- Choose a currency for the formatted output.
The Summary table shows the bond's price, Macaulay duration, modified duration, and DV01 (the dollar price change for a 1 basis point yield move) — then answers the same question two different ways for your yield shock. The duration-estimated price uses the linear approximation duration is built on. The exact repriced value instead recomputes the bond's entire cash-flow schedule at the shocked yield from scratch — no approximation, no formula, just the same pricing math run again at the new rate. The gap between the two, labeled duration estimation error, is the real amount the linear approximation misses at that shock size. The Period-by-Period Discounted Cash Flow table shows every coupon and the principal repayment discounted back to today at the current yield, 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. DV01 restates that slope in dollar terms for one specific bond position: Modified Duration × Price × 0.0001.
For a yield shock of size Δy, the duration estimate is Price × (1 − Modified Duration × Δy) — a straight line drawn through the current price at the current slope. The exact repriced value instead plugs the shocked yield y + Δy back into the full pricing formula above and recomputes every discounted cash flow. Because bond price curves rather than moves in a straight line as yield changes, the two agree closely for a small shock and diverge more as the shock grows — that divergence is what convexity accounts for on the Bond Convexity Calculator, shown here instead as a plain side-by-side comparison against the real recomputed price.
Macaulay duration vs. modified duration vs. DV01
Macaulay duration is a time — the PV-weighted average number of years until you get your money back. Modified duration converts that time into a price-sensitivity percentage — "the bond's price moves about this many percent for a 1 percentage point yield change." DV01 takes modified duration one step further into dollars for a specific position size, which is what actually matters when sizing a hedge. All three move together: a longer maturity, a lower coupon, or a lower yield all push every one of them higher.
Common uses
- Checking how much a linear duration hedge would miss at a given shock size before relying on it
- Comparing the duration of two candidate bonds before choosing which to hold through a rate-volatile period
- Estimating DV01 for sizing a futures or swap hedge
- Sanity-checking a broker-quoted duration figure against an independent calculation
For the curvature correction that explains the gap this tool measures, use the Bond Convexity Calculator. For the yield itself rather than a price-sensitivity breakdown, use the Bond Yield to Maturity Calculator.
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-duration-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-duration-calculator` tool (Bond Duration Calculator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.