CFA Level I Exam · Yield-Based Bond Convexity and Portfolio Properties
Macaulay, Modified and Effective Duration Explained for CFA Level 1
Updated 7 October 2026 · Fact-checked
Duration measures a bond's sensitivity to yield changes. Macaulay duration is the weighted average time to receive cash flows. Modified duration is Macaulay divided by (1 + yield per period) and estimates the percentage price change for a yield change. Effective duration uses prices from a shifted benchmark curve, so it suits bonds with embedded options.
Understand Macaulay, Modified and Effective Duration
Duration tells you how much a bond's price moves when interest rates move. The bigger the duration, the bigger the price change for the same change in yield. Three measures appear on the exam, and each answers a slightly different question.
Macaulay duration is the weighted average time until you receive the bond's cash flows. The weights are the present values of each cash flow as a share of the bond's price. It is measured in years. For a zero-coupon bond, it equals the time to maturity. A coupon bond pays some cash early, so its Macaulay duration is shorter than its maturity.
Modified duration turns Macaulay duration into a price sensitivity. You divide by (1 + yield per period). It then gives the approximate percentage price change for a 1 unit change in yield, with the sign reversed. A modified duration of 4.00 means a price fall of about 4% if the yield rises 1 percentage point. For a bond with a positive yield, modified duration is always below Macaulay duration.
Effective duration does not rely on a formula for fixed cash flows. You reprice the bond after shifting the benchmark yield curve down and up by the same amount. This matters for bonds with embedded options, such as callable or putable bonds, because their cash flows change when rates change. Macaulay and modified duration assume the cash flows stay fixed, so they can mislead for these bonds. Effective duration captures the change in cash flows through the repricing.
Remember the split. Macaulay and modified duration are yield-based and assume fixed cash flows. Effective duration is curve-based and allows cash flows to change. Duration is a linear estimate, so it works well for small yield changes and is less accurate for large ones.
Key formulas to remember
- Macaulay duration
- MacDur = Σ [t × PV(CF_t)] ÷ Σ PV(CF_t)
- t is in periods. Divide by periods per year to express in years. The denominator is the bond's price.
- Macaulay duration, closed form for a fixed-rate bond
- MacDur = (1 + r) ÷ r − [(1 + r) + N × (c − r)] ÷ [c × ((1 + r)^N − 1) + r]
- r is the yield per period, c is the coupon rate per period, N is the number of periods. For a bond priced at par (c = r), this reduces to (1 + r) ÷ r × [1 − 1 ÷ (1 + r)^N]. The result is in periods.
- Modified duration
- ModDur = MacDur ÷ (1 + YTM ÷ m)
- MacDur is in years. YTM is the annual rate, and m is the number of periods per year.
- Approximate modified duration
- ApproxModDur = (PV− − PV+) ÷ (2 × ΔYTM × PV0)
- PV− is the price when YTM falls by ΔYTM. PV+ is the price when YTM rises by ΔYTM. PV0 is the starting price. Cash flows stay fixed.
- Effective duration
- EffDur = (PV− − PV+) ÷ (2 × ΔCurve × PV0)
- ΔCurve is the parallel shift in the benchmark yield curve. Prices come from a model that lets cash flows change, such as an option-adjusted valuation.
- Price change estimate
- %ΔPrice ≈ −ModDur × ΔYield
- Use EffDur × ΔCurve for bonds with embedded options. For larger changes, add the convexity term: + ½ × Convexity × (ΔYield)².
How to solve Macaulay, Modified and Effective Duration questions
Use this routine for any duration question. First decide which measure the question wants, then compute carefully and check the units.
- 1Read the stem and identify the bond type. If it has a call, put or other embedded option, expect effective duration. If cash flows are fixed, expect Macaulay or modified duration.
- 2Note the coupon frequency. Write down m, the yield per period (YTM ÷ m) and the number of periods N.
- 3If asked for Macaulay duration, compute the present value of each cash flow, multiply by its time period, add them up and divide by the price. Convert from periods to years by dividing by m.
- 4If asked for modified duration, divide the annual Macaulay duration by (1 + YTM ÷ m). Do not divide by the annual yield plus 1 for a semiannual bond.
- 5If asked for effective duration, take the price when the curve falls (PV−), the price when it rises (PV+), the starting price (PV0) and the size of the shift (ΔCurve). Compute (PV− − PV+) ÷ (2 × ΔCurve × PV0).
- 6Check the shift size. A shift of 25 bps is 0.0025 in the formula, not 0.25.
- 7To estimate a price change, multiply duration by the yield change and flip the sign. State the answer as a percentage.
- 8Sanity check: modified duration must be below Macaulay, a zero-coupon Macaulay duration equals its maturity, and rates up means price down.
Quickest way: Shortcut checks and elimination
When to use it: Use this when you have about 90 seconds and must pick one of three options, A, B or C.
- If the bond is a zero-coupon bond, Macaulay duration equals the maturity. Eliminate any option that is not that number.
- If the bond is priced at par, use (1 + r) ÷ r × [1 − 1 ÷ (1 + r)^N] for Macaulay duration instead of building a table. On a BA II Plus, compute (1 + r)^N with the y^x key, then take the reciprocal with the 1/x key.
- Modified duration is smaller than Macaulay duration. If two options are both candidates, check which one is below the Macaulay figure.
- For effective duration, compute the numerator PV− − PV+ first, then divide by 2 × ΔCurve × PV0. Options are often built from forgetting the 2 or using the wrong shift size, so check each.
- If the question mentions a callable bond and gives prices for curve shifts, ignore any yield-based formula. The answer is effective duration.
- Eliminate options with the wrong sign or an implausible size, such as a duration longer than the bond's maturity for a plain fixed-rate bond.
Common mistakes in Macaulay, Modified and Effective Duration
Using modified duration for a callable or putable bond.
Modified duration is the formula most students practise, so they apply it everywhere.
Fix: If the bond has an embedded option, cash flows can change when rates change. Use effective duration from the repriced bond.
Dividing Macaulay duration by (1 + annual YTM) for a semiannual bond.
Students forget that the adjustment uses the yield per period.
Fix: Divide by (1 + YTM ÷ m). For a 6% semiannual bond, divide by 1.03, not 1.06.
Reporting Macaulay duration in periods when the question wants years.
The time weights t are counted in coupon periods, so the raw result is in half-years for semiannual bonds.
Fix: Divide the result in periods by m to convert to years before using it in any modified duration step.
Forgetting the 2 in the denominator of the approximation formulas.
The price difference spans two shifts, one down and one up, but students treat it as one.
Fix: Always write (PV− − PV+) ÷ (2 × shift × PV0). The 2 covers the total move from PV+ to PV−.
Using the change in the bond's own YTM when the question asks about effective duration.
Effective duration is described with a curve shift, but students mix it with yield-based measures.
Fix: For effective duration, the shift is applied to the benchmark yield curve. The bond's own yield can change by a different amount because of the option.
Treating duration as exact for large yield changes.
The formula looks precise, so students forget it is a linear estimate.
Fix: Remember that the true price-yield curve is convex. Duration alone understates the price after a fall in yields and overstates the fall after a rise. Add the convexity term when it is given.
Worked examples
Example 1
A 3-year bond pays an annual coupon of 5% on a face value of 100 and has a yield to maturity of 5%. What is the modified duration? Options: A: 2.72, B: 2.86, C: 3.00.
Show the solution
- The bond pays annually, so m = 1 and the yield per period is 5%.
- Find the Macaulay duration first. Present values: year 1 is 5 ÷ 1.05 = 4.7619; year 2 is 5 ÷ 1.05² = 4.5351; year 3 is 105 ÷ 1.05³ = 90.7029. The total is 100.0000, so the bond is priced at par.
- Time-weighted values: 1 × 4.7619 = 4.7619; 2 × 4.5351 = 9.0703; 3 × 90.7029 = 272.1088. The sum is 285.9410.
- Macaulay duration = 285.9410 ÷ 100 = 2.8594 years.
- Modified duration = 2.8594 ÷ 1.05 = 2.7232.
Answer: The modified duration is about 2.72, which is option A. Option B is the Macaulay duration, which has not been divided by 1.05. Option C is wrong because modified duration must be below Macaulay duration.
Example 2
A callable bond has a price of 98.40. If the benchmark yield curve shifts down by 25 bps, its price is 99.10. If the curve shifts up by 25 bps, its price is 97.50. What is the effective duration? Options: A: 1.63, B: 3.25, C: 6.50.
Show the solution
- Identify the inputs: PV− = 99.10, PV+ = 97.50, PV0 = 98.40, ΔCurve = 0.0025.
- Numerator: PV− − PV+ = 99.10 − 97.50 = 1.60.
- Denominator: 2 × 0.0025 × 98.40 = 0.492.
- Effective duration = 1.60 ÷ 0.492 = 3.252.
- Check the traps: leaving out the 2 gives 1.60 ÷ (0.0025 × 98.40) = 1.60 ÷ 0.246 = 6.50. Using 0.005 as the shift (50 bps) instead of 0.0025 gives 1.60 ÷ (2 × 0.005 × 98.40) = 1.60 ÷ 0.984 = 1.63.
Answer: The effective duration is about 3.25, which is option B. Option C omits the 2 in the denominator. Option A uses 0.005 as the shift instead of 0.0025.
Exam tips
- When a stem mentions a call, put or other embedded option, expect effective duration and a table of prices after curve shifts.
- Check the units of the shift. Basis points must be converted to decimals in the formula, so 25 bps becomes 0.0025.
- Remember the ranking for a positive yield: Macaulay duration is above modified duration. This eliminates options quickly.
- Know the zero-coupon rule. Macaulay duration equals maturity, and the modified duration is that figure divided by (1 + yield per period).
- For price-change questions, give the sign. Yields up mean prices down, so the estimate is negative.
Practice questions from Yield-Based Bond Convexity and Portfolio Properties
- An analyst values a bond at 100.0 with a yield of 5%. The bond price is 104.2 if the yield falls by 100 bps and 96.4 if the yield rises by 1…
- A bond is priced at 100.00. If its yield falls by 25 bps the price is 101.90, and if its yield rises by 25 bps the price is 98.14. The appro…
- For an option-free fixed-rate bond, the convexity of the price-yield relationship most likely implies that, for a given size of yield change…
- A bond portfolio's effective duration is 7.0 and its convexity is 80. Yields fall by 100 bps in a parallel shift. Using the duration-plus-co…
- A bond's price is 98.50. If yield rises 25 bps the price falls to 96.80, and if yield falls 25 bps the price rises to 100.30. The bond is mo…
Macaulay, Modified and Effective Duration in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
Macaulay, Modified and Effective Duration: frequently asked questions
What is the difference between Macaulay duration and modified duration?
Macaulay duration is the weighted average time to receive the bond's cash flows, measured in years. Modified duration divides Macaulay duration by (1 + yield per period) and gives the approximate percentage price change for a change in yield. For a positive yield, modified duration is always smaller.
How do I calculate modified duration of a bond?
First find the Macaulay duration by weighting each cash flow's time by its present value share of the price. Then divide by (1 + YTM ÷ m), where m is the number of coupon periods per year. You can also estimate it with (PV− − PV+) ÷ (2 × ΔYTM × PV0).
What is the difference between modified duration and effective duration?
Modified duration is yield-based and assumes the bond's cash flows do not change when the yield changes. Effective duration is curve-based. It reprices the bond after shifting the benchmark curve, so it allows cash flows to change. This is why it is used for bonds with embedded options.
What is the effective duration formula for bonds with embedded options?
Effective duration = (PV− − PV+) ÷ (2 × ΔCurve × PV0). PV− and PV+ are prices after the benchmark curve shifts down and up by ΔCurve, and PV0 is the starting price. The prices must come from a model that accounts for the option.