Calculate bond convexity, Macaulay and modified duration, and convexity-adjusted price changes from face value, coupon rate, yield, and maturity.
Bond Convexity Formula
C = (1/P) * SUM[ t*(t+1)*CF_t / (1+y)^(t+2) ] / m^2
- C is the annualized bond convexity
- P is the current price of the bond
- CF_t is the cash flow received in period t (each coupon, plus the face value in the final period)
- t is the period number, counted in coupon periods
- y is the yield to maturity per period (annual yield divided by m)
- m is the number of coupon payments per year
The calculator’s first mode uses this closed-form version. You enter the face value, annual coupon rate, years to maturity, yield to maturity, and payment frequency, and it builds the full cash flow schedule, prices the bond, and returns the Macaulay duration, modified duration, dollar convexity, and annualized convexity. Dividing by m squared converts per-period convexity into annual terms, which is the convention most textbooks and the CFA curriculum use.
The second mode uses the effective (approximate) convexity formula, which only needs three prices:
C = (P_down + P_up - 2*P) / (P * dy^2)
- P_down is the bond price if the yield falls by dy
- P_up is the bond price if the yield rises by dy
- P is the current bond price
- dy is the yield change as a decimal (1% = 0.01)
The third mode estimates a price change when you already know the duration and convexity:
%dP = -MD*dy + 0.5*C*dy^2
- %dP is the percentage change in the bond price
- MD is the modified duration
- C is the convexity
- dy is the yield change as a decimal (positive for rising yields, negative for falling)
Typical Convexity Values and Estimation Accuracy
Convexity rises roughly with the square of maturity, and zero coupon bonds carry more convexity than coupon bonds of the same maturity because all of their cash flow sits at the final date. The table below shows computed values for bonds priced at a 5% yield with semiannual compounding, which you can use as a sanity check on your own results.
| Bond (at 5% yield) | Modified duration | Convexity |
|---|---|---|
| 2 yr, 4% coupon | 1.89 | 4.6 |
| 5 yr, 4% coupon | 4.46 | 23.2 |
| 10 yr, 4% coupon | 8.05 | 77.1 |
| 30 yr, 4% coupon | 16.20 | 380.0 |
| 10 yr, zero coupon | 9.76 | 99.9 |
| 30 yr, zero coupon | 29.27 | 870.9 |
The next table shows why the convexity adjustment matters and when you can skip it. It reprices a 10 year, 5% semiannual coupon bond (price $925.61, modified duration 7.665, convexity 71.79 at a 6% yield) after upward yield moves of different sizes. The duration-only error grows with the square of the move, while the duration plus convexity estimate stays within a few dollars even for a 3 point shock.
| Yield move | Exact price | Duration only (error) | Duration + convexity (error) |
|---|---|---|---|
| +0.5 pts | $890.95 | $890.14 (-$0.82) | $890.97 (+$0.01) |
| +1 pt | $857.88 | $854.66 (-$3.21) | $857.99 (+$0.11) |
| +2 pts | $796.15 | $783.72 (-$12.43) | $797.00 (+$0.86) |
| +3 pts | $739.84 | $712.77 (-$27.07) | $742.67 (+$2.83) |
Example Problems
Example 1: convexity from bond details. A bond has a $1,000 face value, a 5% annual coupon, 3 years to maturity, and a 6.5% yield to maturity. Building the cash flow schedule gives a price of $960.27. The weighted average time to each payment gives a Macaulay duration of 2.856 years, a modified duration of 2.682, and an annualized convexity of 9.906. Enter these inputs in the first mode with annual frequency to reproduce every figure.
Example 2: price change from duration and convexity. Using the same bond, estimate the price change if yields rise 1.5 points from 6.5% to 8%. The duration effect is -2.682 * 0.015 = -4.023%. The convexity adjustment is 0.5 * 9.906 * 0.015^2 = +0.111%. The total estimated change is -3.912%, or about -$37.56, for an estimated new price near $922.71. Without the convexity term you would have overstated the loss by roughly $1.07.
FAQ
Is higher convexity good or bad for a bondholder? For an option-free bond, higher convexity is a benefit. The convexity term in the price change formula is always positive, so it adds to gains when yields fall and offsets part of the loss when yields rise. Between two bonds with the same duration and yield, the one with more convexity outperforms in large rate moves in either direction. That benefit is not free: high-convexity bonds usually trade at slightly lower yields.
What does negative convexity mean? Negative convexity appears in bonds whose cash flows shrink when rates fall, mainly callable bonds and mortgage-backed securities. When yields drop, the issuer becomes likely to call the bond, or homeowners refinance, so the price stops rising the way an option-free bond would. The effective convexity mode of the calculator can return a negative value for these bonds if you supply the observed prices.
Why is my convexity number different from another calculator’s? The most common cause is the compounding convention. Convexity computed per coupon period must be divided by the payment frequency squared to annualize it, so a semiannual bond’s per-period convexity is 4 times its annual figure. Other tools may also use the effective convexity approximation instead of the closed-form sum, which produces slightly different values, especially for large yield differentials. Check the frequency setting and whether the result is annualized before comparing.
