Bond Duration and Convexity Calculator
What duration and convexity measure
Duration summarizes a bond’s interest-rate sensitivity. It is commonly reported in years, but it is built from cash flows that occur in discrete coupon periods. The most common definitions are:
- Macaulay duration: the present-value–weighted average time to receive the bond’s cash flows.
- Modified duration: a scaled version of Macaulay duration that approximates the percentage price change for a small change in yield.
Convexity captures the curvature of the price–yield relationship. Adding convexity to a duration-based estimate improves accuracy when yield changes are not tiny.
Inputs (and unit conventions)
- Face value is the principal repaid at maturity.
- Annual coupon (%) is the stated annual rate; the coupon per period is Face × coupon / payments per year.
- Yield to maturity (%) is treated as a nominal annual yield compounded at the coupon frequency (i.e., yield per period = annual yield / payments per year).
- Years to maturity and payments per year determine the number of coupon periods n.
- Yield shock (%) is used only for the price-impact approximation. It is interpreted as an annual yield change. The calculator converts it to a decimal (e.g., 1% → 0.01) and applies it consistently in the estimate.
Core formulas used
Let:
- F = face value
- c = annual coupon rate (decimal)
- m = payments per year
- T = years to maturity
- n = total payments = T × m
- y = yield per period = (annual YTM as decimal) / m
- t = period index (1…n)
- CFt = cash flow in period t (coupon each period; final period includes face value)
Bond price (present value) is:
Macaulay duration in periods is the PV-weighted average of t:
DMac,periods = (∑ t × PV(CFt)) / P
Converted to years:
DMac,years = DMac,periods / m
Modified duration (reported in years here) is:
DMod = DMac,years / (1 + y)
Convexity (one common discrete-compounding form) is:
Cx = [∑ t(t+1) × PV(CFt)] / [P × (1 + y)2]
Estimating the price impact of a yield shock
For a yield change Δy (in decimal terms, e.g., 1% = 0.01), a Taylor approximation for percentage price change is:
ΔP / P ≈ −DMod × Δy + ½ × Cx × (Δy)2
Interpretation: positive Δy (yields rise) tends to reduce price; convexity offsets some of that decline and boosts gains when yields fall.
How to interpret the results
- Macaulay duration (years): the “average timing” of discounted cash flows. Higher means cash flows arrive later, typically implying more rate sensitivity.
- Modified duration: a first-order sensitivity. Example reading: DMod = 6 means a ~6% price drop for a +1% yield move (all else equal, small move assumption).
- Convexity: the second-order adjustment. Two bonds can share similar modified duration but differ in convexity; the higher-convexity bond generally performs better when rates move materially in either direction.
Worked example
Suppose:
- Face value F = $1,000
- Annual coupon = 5% (so $50 per year)
- Payments per year m = 2 (semiannual coupons of $25)
- Years to maturity T = 8 (so n = 16 periods)
- YTM = 4.2% (yield per period y = 0.042 / 2 = 0.021)
The calculator discounts each $25 coupon and the final ($25 + $1,000) redemption at (1 + 0.021)t, sums them to get price P, and then forms PV weights to compute duration and convexity.
If you also enter a yield shock of +1.00% (Δy = 0.01), the tool uses:
ΔP / P ≈ −DMod·0.01 + ½·Cx·(0.01)2
This gives a quick estimate of the percentage price change without fully repricing the bond at the shocked yield. For larger shocks, this approximation is usually better than duration-only, but still not exact.
Assumptions and limitations (important)
- Fixed-coupon, plain-vanilla bond: no call/put/convertible features, sinking funds, step-up coupons, or other embedded options. Optionable bonds have effective duration/convexity that can differ materially.
- Equal spacing & integer periods: cash flows are assumed to occur exactly every 1/m years. Irregular first/last coupons are not modeled.
- No settlement date / accrued interest: results are based on a “theoretical” present value from time 0. Market quotes typically depend on settlement conventions and accrued interest (clean vs dirty price).
- Simple compounding convention: YTM is treated as nominal annual yield compounded at the coupon frequency (y = YTM/m). Different compounding or continuous-compounding definitions will produce different values.
- No day-count conventions: ACT/ACT, 30/360, ACT/360, etc. are not applied; timing is simplified to uniform periods.
- Approximation accuracy: the duration+convexity price-impact formula is a Taylor approximation and is most reliable for small-to-moderate yield changes; large moves require full repricing at the new yield.
- Informational use: outputs are educational estimates and not investment advice; consult your data source/broker/terminal for convention-matched analytics.
Comparison table: duration vs convexity (what each adds)
| Metric | What it measures | Typical unit | Best use |
|---|---|---|---|
| Macaulay duration | PV-weighted average timing of cash flows | Years | Comparing cash-flow timing; linking to modified duration |
| Modified duration | First-order price sensitivity to yield | % price change per 1.00 (i.e., 100%) yield change; commonly interpreted per 1% | Quick small-move price impact estimate |
| Convexity | Second-order curvature of price–yield | Depends on convention (often “per yield-squared”) | Improving estimates for non-trivial yield moves; comparing curvature across bonds |
References (definitions)
These are standard fixed-income definitions commonly taught in bond math and professional finance curricula (e.g., CFA Program fixed-income readings and widely used bond mathematics texts).
Duration Drift Mini-Game
Keep portfolio tilt balanced through yield shocks—catch cushion orbs and dodge convexity cracks.
Tap/drag or use ←/→ to move your hedge bar.
