The formula
How to calculate bond duration
Duration measures how sensitive a bond's price is to a change in interest rates. Macaulay duration is the weighted average time until you get your money back; modified duration converts that into a percentage price move per 1% shift in yields.
The closed form above avoids discounting each coupon separately. It assumes annual coupons and a flat yield curve, which is the standard textbook setup and close enough for comparing bonds.
Fill in the following:
- Coupon rate (%)
- Yield to maturity (%)
- Years to maturity (years)
Results appear immediately — there is nothing to submit. Changing a field rewrites the link, so you can share the exact scenario you are looking at.
Worked example
Take the figures the calculator starts with:
- Coupon rate: 4.5 %
- Yield to maturity: 6 %
- Years to maturity: 10 years
That gives:
- Macaulay duration: 8.147 years
- Modified duration: 7.686 years
- Price change if yields rise 1%: -7.686 %
Reading the result
Modified duration is a rule of thumb you can apply directly: 7.5 means a one-point rise in yields costs roughly 7.5% of the price. A zero-coupon bond has duration equal to its maturity; coupons shorten it, because some of your money comes back sooner.
Where this goes wrong. Duration is a straight-line estimate of a curved relationship. For yield moves beyond about one percentage point it overstates losses and understates gains — the correction term is convexity.
Because Macaulay duration genuinely is a time: the average number of years until each pound of the bond's cash flows arrives, weighted by present value. Modified duration inherits the unit even though it is used as a sensitivity.
Hold shorter-dated bonds, prefer higher coupons, or ladder maturities so that some of the portfolio is always redeeming and can be reinvested at current rates.
It returns macaulay duration. With 4.5 % coupon rate, 6 % yield to maturity and 10 years years to maturity, that comes to 8.147 years. Change any field and the figure moves with it.