Bond Duration Calculator
The formula
What the bond duration tells you
The cash-flow-weighted average time until you get paid — and, scaled by (1+y), the percentage a bond's price moves for a one-point change in yield. Duration is how bond investors think about risk; maturity is just one input.
Calculation: Macaulay D = (1+y)/y − [(1+y) + T(c−y)] ÷ [c((1+y)ᵀ − 1) + y]. Enter your inputs and every substitution is shown below the result.
Reading the result
A zero coupon's duration equals maturity exactly; every coupon shortens it because part of the money arrives early. High rates also shorten duration mechanically.
Rules of thumb: Short 0–3, intermediate 4–7, long 12+; the 2022 bond crash punished the 20-year index hardest for a reason
Limitations and best practice
Duration is a first-order linear approximation — it understates gains when yields fall and gains when yields rise, and is wrong for big moves without convexity. Mortgage-backed pools behave completely differently because their cash flows move too.
This calculator gives an estimate based on standard formulas; it is not professional financial, medical, legal or engineering advice. Verify anything you plan to act on with a qualified professional and your own records.
Frequently asked questions
Duration vs maturity — same thing?
How do I reduce interest-rate risk?
Source & methodology
Macaulay, F. (1938) "The Some Theory of Bond Valuation"; standard CFA curriculum.
Bond Duration explained: formula, worked example and honest limits
Time is the one input nobody can renegotiate, which makes getting the arithmetic right worth the minute it takes. Bond Duration is the kind of number people argue about from memory. This page ends that argument with arithmetic you can watch happen: enter your figures, get Macaulay duration in real time, and see every substitution printed below.
Return and risk arrive as a package in Bond Duration. A result of 8.11 years means little until you ask what variance sits behind it, how it compares with the boring alternative (the companion tools above compute exactly that comparison), and whether the inputs assume the good scenario or the expected one.
Like most useful measures, Bond Duration is a summary, and summaries hide as much as they reveal. The companion outputs and the input table are here to reopen what the headline compressed.
What makes a calculation page trustworthy is that its copy is derived from its own arithmetic: here macaulay duration = 8.11 years, recomputed every time a field changes, and the sensitivity section ranks the inputs that move the result — Years to maturity first, at ≈8.0 % of the headline for a ten-percent error either way in that input. Work down the page and by the end you could re-derive the result in a spreadsheet from memory.
How Bond Duration is computed, line by line
One formula, published in full: Macaulay D = (1+y)/y − [(1+y) + T(c−y)] ÷ [c((1+y)ᵀ − 1) + y]. Anything you can read, you can reproduce in a spreadsheet, and that reproducibility is the whole point of printing it rather than hiding it behind a button.
Annual coupon rate (%) (example value 5) is a quantity rather than a category — precision here is cheap and worth having. Check the convention first: if the source says “6.5 % per year”, type 6.5 and let the formula do the rest.
Yield to maturity (%) (example value 5) is a quantity rather than a category — precision here is cheap and worth having. Check the convention first: if the source says “6.5 % per year”, type 6.5 and let the formula do the rest.
Years to maturity (example value 10) is a measured number in the unit named by the label; the formula does not convert for you. If the period is partial, decide whether you mean elapsed or planned time and keep that meaning across every field.
The default Bond Duration calculation, written out in full
Abstract formulas are hard to trust, so here is the complete substitution using the default inputs, written the way an examiner would want it. Starting figures: Annual coupon rate (%), Yield to maturity (%), Years to maturity. The computed macaulay duration comes out at 8.11 years, which the interpretation band labels “A 1% rate move shifts price ≈ 7.72% (modified duration)”.
- Macaulay = weighted-average time to cash flows = 8.11 years
- Modified = 8.11 ÷ (1 + 0.0500) = 7.72 — the practical % price risk per 100bp
Modified duration — 7.72. This is the number experienced users quote when the headline alone would mislead.
Price impact of +100bp — -7.7%. If your inputs change, this is usually the first companion figure to move.
Price impact of +25bp — -1.93 %. Read next to the headline, this is the figure that shows the shape of the trade-off.
Zero-coupon duration for comparison — 10.0 yrs. Compare it against the main result of 8.11 years before drawing conclusions.
Keep this worked example open while you enter your own figures: matching the shape of the substitution is the fastest way to spot a unit or convention mistake.
Scenario table: Bond Duration at ±10 % and ±20 % of the key input
Read this table as the practical error bar on the headline figure. It answers the question people actually have after seeing a single number: how wrong could this be if the main input is off by ten or twenty percent?
| Years to maturity setting | Macaulay duration |
|---|---|
| 80 % of the example value | 6.79 years |
| 90 % of the example value | 7.46 years |
| example inputs | 8.11 years |
| 110 % of the example value | 8.72 years |
| 120 % of the example value | 9.31 years |
That spread — 6.79 years at the low end, 9.31 years at the high — is what a careful read of Bond Duration looks like: a band you can state out loud, with the reason for each edge. Reproduce it in the form above by editing Years to maturity alone; the substitution steps will follow your figures exactly.
The levers behind Bond Duration, ranked by effect
Nobody should have to guess which input matters. The engine was re-run once per field below — ten percent up, ten percent down, everything else frozen — and the results ranked by how far they moved the macaulay duration. For Bond Duration the ranking is measured rather than guessed, and it belongs to these defaults: shift the starting point and the order can shift with it.
- Years to maturity +10 % → Bond Duration = 8.72 years · −10 % → 7.46 years (the macaulay duration shifts ≈8.0 %)
- Annual coupon rate +10 % → Bond Duration = 8.00 years · −10 % → 8.23 years (the macaulay duration shifts ≈1.5 %)
- Nudge Yield to maturity by ±10 % and Bond Duration lands between 8.07 years and 8.15 years (sensitivity ≈0.5 %)
Years to maturity is the dominant lever here: ten percent either way moves the result by about 8.0 %, from 7.46 years to 8.72 years. Measure that input from a document rather than from memory, and treat Annual coupon rate as the second priority (≈1.5 % per ten percent). The rest of the inputs earn only a rounding-error of attention, and that asymmetry is the practical payoff of measuring rather than asserting.
Reading the result: bands, zones and thresholds
A number on its own is trivia; a number against a range is intelligence. On the example inputs the band reads “A 1% rate move shifts price ≈ 7.72% (modified duration)”; your own figures place you on a different rung of the same ladder. Before treating the band as fact, note its width: ten percent either way on Years to maturity already spans 7.46 years to 8.72 years. The practical reading rules: read the band as a starting hypothesis, then test it: change the two dominant inputs by ten percent and see whether the verdict survives. Verdicts that survive stress are the ones worth acting on.
Placing this figure in context: calculators of this kind differ less in arithmetic than in what they choose to ignore. This one keeps Annual coupon rate (%) explicit so that the omissions are visible rather than hidden in a preset.
How people get Bond Duration wrong
Duration is a first-order linear approximation — it understates gains when yields fall and gains when yields rise, and is wrong for big moves without convexity. Mortgage-backed pools behave completely differently because their cash flows move too. This calculator gives an estimate based on standard formulas; it is not professional financial, medical, legal or engineering advice. Verify anything you plan to act on with a qualified professional and your own records.
Chasing one metric. Bond Duration needs its pair (Modified duration) the way a speedometer needs fuel pressure — one number alone has burned more portfolios than bad markets.
One mistake is specific to this engine: assuming every input matters equally. The computation above shows Years to maturity dominating — a careful figure there beats false precision everywhere else.
Another is comparing across contexts: a Bond Duration computed with one set of conventions should never be lined up against a figure computed with another. Check the inputs behind both before ranking them.
Before you trust your Bond Duration: a short checklist
- Recompute once with the dominant input deliberately set low, and see whether the decision changes.
- Compare the result with one independent method or published benchmark.
- Put Years to maturity under a magnifier; the sensitivity table above is the reason why.
- State, in one sentence, which convention each rate, unit or period in the form is using.
- Re-run the calculation with a ±10 % stress on the two most sensitive inputs.
- Run the ±10 % stress on the top two levers and check that your conclusion survives both.
How to use the Bond Duration tool properly
Using a calculator well sounds trivial, but the difference between a decision-grade figure and a throwaway one lives entirely in the routine. The routine for Bond Duration takes a minute to learn and applies to every input above.
Step 1 — one document, one pass. Open the statement, label or record that holds annual coupon rate (%), yield to maturity (%), years to maturity and transcribe straight into the form. Transcription from a single source removes the mismatch errors that appear when figures are assembled from three different places. When in doubt, prefer the boring input: the interesting one is usually the one you misread.
Step 2 — compute the version you would not be embarrassed by. If a stranger audited your inputs, which set would you hand over? Enter that set, read the result, and treat everything else as upside. The input you reach for first is usually the one you measured longest ago.
Step 3 — isolate your variables. Change one field, observe, revert. The live sensitivity list does the ranking for the default inputs; verify it against your own, because dominance shifts when the starting point shifts. A calculation you cannot explain to somebody else is a calculation you cannot defend.
Step 4 — run the scenario trio. Expected, pessimistic, optimistic. The gap between pessimistic and expected is the number to plan against; the optimistic result is useful only as a ceiling. A figure nobody can reproduce is a figure nobody will act on twice.
Step 5 — record the context, not just the number. Note today’s date and the inputs alongside the 8.11 years output. Six months from now the context is what turns this figure into a trend. Say the answer out loud before you save it; if it sounds wrong, the model did not change, your understanding did.
Who actually uses Bond Duration — and when
In Fixed Income the figure computed here is usually the first one somebody asks to see. Having it — with the formula behind it — changes your position in the conversation from participant to reference. Suspiciously tidy answers deserve the same scrutiny as untidy ones.
The audience for this page is people planning around a point or span in time. In professional Fixed Income practice the pattern is always the same — screen with Bond Duration, then invest slow analysis only in whatever survives the screen. Repeating a calculation with the same numbers proves only that the arithmetic is reliable — which is worth knowing.
Treat Bond Duration like a smoke alarm rather than a painting — its value is in being tested periodically, not in being admired once. Suspiciously tidy answers deserve the same scrutiny as untidy ones.
Bond Duration — frequently asked questions
What affects Bond Duration the most?
Measured on this engine, Years to maturity is the dominant lever: moving it ±10 % shifts the macaulay duration across 7.46 years to 8.72 years — about 8.0 % of the headline, with Annual coupon rate next at ≈1.5 %. The ranked list in the sensitivity section is computed live, not asserted from a template.
Which matters more: annual coupon rate or years to maturity?
By the numbers, Years to maturity: a ten-percent change in it moves the result ≈8.0 %, versus ≈1.5 % for Annual coupon rate. Spend your measuring effort in that order — precision on the weaker lever buys almost nothing.
What is a typical Bond Duration?
With the example inputs on this page the result is 8.11 years, labelled “A 1% rate move shifts price ≈ 7.72% (modified duration)”. “Typical” varies with situation, which is why every result here ships with its verdict band and its sensitivity list: they turn one figure into a range you can locate yourself inside.
How do I calculate Bond Duration by hand?
Use the stated model — Macaulay D = (1+y)/y − [(1+y) + T(c−y)] ÷ [c((1+y)ᵀ − 1) + y] — and substitute in the order the tool prints (it starts from Macaulay = weighted-average time to cash flows = 8.11 years). On the example inputs the hand route lands on 8.11 years, exactly what the calculator shows. A spreadsheet reproduces it in two or three cells; doing it once by hand is what makes the automated answer trustworthy.
What happens to Bond Duration if years to maturity changes by 10 %?
On these inputs a ±10 % change in years to maturity takes Bond Duration to 8.72 years against the 8.11 years example — around 8.0 % of the headline. The same test on every other field is in the sensitivity section.
Is the Bond Duration result of 8.11 years good or bad?
Neither, on its own — the label “A 1% rate move shifts price ≈ 7.72% (modified duration)” is the band this figure falls in for the example inputs, and your own inputs will place you elsewhere on the same ladder. Judge the number against your history and your alternatives, and remember that a ten-percent error in Years to maturity alone moves it by ≈8.0 %.
Is Bond Duration accurate?
The arithmetic is exact: Macaulay D = (1+y)/y − [(1+y) + T(c−y)] ÷ [c((1+y)ᵀ − 1) + y] is evaluated with full floating-point precision and every substitution is printed in the worked example. What limits accuracy is input quality and the model’s assumptions, so treat the 8.11 years result as the correct answer to the question you typed — and check the assumptions section before acting on it.
How often should I check Bond Duration?
Whenever an input changes by more than a few percent, and otherwise on the rhythm of your decisions — before a purchase, a review, a renewal. Bond Duration is a snapshot, not a subscription; stale snapshots are the most common silent error in Investing & Markets planning.
Duration vs maturity — same thing?
No. A 30-year 8% bond has duration nearer 12 — coupons return your money on average much sooner than the final payment.
How do I reduce interest-rate risk?
Shorten duration — or shift to floaters and short maturities. Duration is the dial: −100bp rates × 6 duration ≈ +6% price.
Can this tool see the numbers I type?
It cannot. There is no submission step: the calculation happens in your browser and the result disappears when you close the page. Treat the fields above as a scratchpad rather than a form.
Key terms on this page
- Modified duration
- 7.72 in the default Bond Duration calculation — one of the secondary figures an experienced reader checks before trusting the primary number.
- Price impact of +100bp
- -7.7% in the default Bond Duration calculation — one of the secondary figures an experienced reader checks before trusting the primary number.
- Price impact of +25bp
- -1.93 % on the example inputs — a companion figure printed beside the headline of Bond Duration so that no result is read in isolation.
- Macaulay duration
- The primary output of this tool: 8.11 years for the default inputs, computed exactly from Macaulay D = (1+y)/y − [(1+y) + T(c−y)] ÷ [c((1+y)ᵀ − 1) + y].
- Worked example
- Every substitution in order, from the example inputs to 8.11 years — the audit trail for the headline figure.
- Verdict band
- The plain-language label — here “A 1% rate move shifts price ≈ 7.72% (modified duration)” — mapping the computed figure onto experience-based ranges for Investing & Markets.
- Sensitivity (±10 %)
- How far the Bond Duration moves when a single input is nudged ten percent either way; the ranked list on this page is computed live from this engine.
Method, sources and what this tool cannot tell you
Everything above runs on one stated formula, applied without hidden coefficients: Macaulay D = (1+y)/y − [(1+y) + T(c−y)] ÷ [c((1+y)ᵀ − 1) + y]. Source of record: Macaulay, F. (1938) "The Some Theory of Bond Valuation"; standard CFA curriculum. Any other implementation of this model should return the same figure for the same inputs. If one does not, the difference is in its assumptions — which this page prints and that one probably does not.
This page is an estimation aid, not professional advice. The design rule is simple: two people entering identical figures must get identical answers. The design constraint was set by usefulness rather than by comfort: an estimate you can interrogate beats an answer you have to trust.
What to do with your Bond Duration next
Mark the computed date or span in your calendar with its assumptions attached; plans drift when the inputs do.
Whoever you are (people planning around a point or span in time), the next step is the same: replace the example inputs with your own, note the date, and re-run whenever a figure moves. In Investing & Markets, a dated figure is a trend, and an undated one is a rumour.
