Macaulay duration: definition and calculation
Macaulay duration is the weighted average time until a bond's cash flows arrive, each weighted by its share of the bond's present value. It is measured in years, is always less than maturity for a coupon bond (equal for a zero), and falls as time passes.
Before this: Bond Valuation: Prices and Yields, Returns of Financial Assets, Time Value of Money in Finance
On the exam
- Define, calculate, and interpret Macaulay duration
Define, calculate and interpret Macaulay duration, including a semiannual bond and a settlement date between coupon dates. Expect one calculation and one property question (zero versus coupon bond, higher coupon, time passing).
How deeply to learn each part
- Know the idea
- Understand it in general. It frames other topics, but you will not calculate with it.
- Use it
- Understand it well enough to solve a question with it. Recognize when it applies.
- Memorize
- Learn it by heart. The exam will not give it to you.
You know this one. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still do.
You tested strong here. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still know it.
What does Macaulay duration measure?
Macaulay duration is the average time you wait for a bond’s cash flows, where each payment counts in proportion to how much of the bond’s value it is worth today. A bond that returns most of its value early has a short duration. One that returns most of it at the end has a long one.
Two ideas build it. The time to receipt is how many years away each payment is. The present-value weights are each payment’s present value divided by the bond’s full price, so they add up to 1.
- Weight = PV ÷ price. Year 1: 5.7143 ÷ 104.3295 = 0.0548. Weight by present value and divide by the price, not by par.
- The final block is heavy. Coupon plus principal holds 79.6% of the value, so the balance point sits close to maturity, but below it.
3 Zero-coupon: one block, balances at 5.00 years = maturity.
4 8% coupon: heavier early blocks pull it left to 4.357.
| Year | Cash flow | PV at 5% | Weight | Year × weight |
|---|---|---|---|---|
| 1 | 6 | 5.7143 | 0.0548 | 0.0548 |
| 2 | 6 | 5.4422 | 0.0522 | 0.1043 |
| 3 | 6 | 5.1830 | 0.0497 | 0.1490 |
| 4 | 6 | 4.9362 | 0.0473 | 0.1893 |
| 5 | 106 | 83.0538 | 0.7961 | 3.9804 |
| Total | 104.3295 | 1.0000 | 4.4778 |
The weight on payment is its present value over the price, and the sum of times weight is the answer. Duration is measured in years once it is annualized. The previous lesson showed why it matters: it is the horizon at which price risk and reinvestment risk balance.
How do you calculate it?
You can build the table, use a one-line formula, or let a spreadsheet do it.
- Table of weighted times Memorize PV, weight, time × weight, add up; shows the idea
- Closed-form formula Use it one expression, on a coupon date; the fast exam route
- Spreadsheet DURATION function Know the idea handles a settlement date between coupons
The table shows what is going on. The closed form is faster on exam day, and on a coupon date it gives exactly the same number.
Here is the yield per period, the coupon rate per period, the number of periods left, the days since the last coupon and the days in the period. On a coupon date . This is the closed-form duration formula .
A 5-year bond pays a 6.00% coupon annually and yields 5.00%, with settlement on a coupon date. Its annualized Macaulay duration is closest to:
N = 5, r = 5% and c = 6% per period: 4.478 periods ÷ 1 = 4.478 years
Macaulay duration (years)4.4778
- (1.05y^x5−1)×0.06+0.05=STO1the denominator
- 5×(0.06−0.05)+1.05=÷RCL1=
- +|-+(1.05÷0.05)=4.478 years
y^x power · STO store · RCL recall a stored number · +|- change sign
- 1.05ENTER5y^x1−0.06×0.05+STO1the denominator
- 0.06ENTER0.05−5×1.05+RCL1÷
- 1.05ENTER0.05÷−CHS4.478 years
ENTER enter (on the HP, puts the number on the stack) · y^x power · STO store · RCL recall a stored number · CHS change sign
Go deeper The spreadsheet check, and where duration goes next
A spreadsheet’s DURATION(settlement, maturity, coupon, yield, frequency) returns the annualized Macaulay duration and handles a settlement date between coupons. Use it to check a hand calculation. The next module turns this number into a price sensitivity: modified duration is the Macaulay duration divided by one plus the yield per period.
How do you handle a semiannual bond?
Run the whole calculation in periods and then annualize. Everything inside the formula (yield, coupon, number of periods) is per half-year, and the answer comes out in half-years.
Here is the number of coupons per year, 2 for semiannual. The result is the annualized duration .
What changes between coupon dates?
Between coupon dates, every payment is closer by the fraction of the period that has passed, , so every time to receipt drops by that fraction. The present values all rise by the same factor, so the weights do not change.
Macaulay duration between coupon dates is therefore the duration at the last coupon date minus , measured in periods.
On its last coupon date a bond's Macaulay duration was 7.35 years. 0.15 years later, with the yield unchanged, it is closest to:
7.35 − 0.15 = 7.2
Macaulay duration now (years)7.2
- 7.35−0.15=7.2
- 7.35ENTER0.15−7.2
ENTER enter (on the HP, puts the number on the stack)
The fraction t/T is counted in coupon periods. For a semiannual bond, divide it by 2 before subtracting it from a duration quoted in years.
Go deeper Why duration jumps up after each coupon
Between coupon dates the duration falls by the elapsed fraction of a period. Take the 8-year, 5% annual bond at par: its duration on a coupon date is 6.786, so just before the next coupon it is 6.786 − 1 = 5.786. Once that coupon is paid, the bond is a 7-year bond with a duration of 6.076, a step up of 0.289. The payment that disappeared was the one due immediately, the earliest in the average, so what remains has a longer average wait. Over the long run duration still trends down as the maturity approaches.
What properties of Macaulay duration should you know?
- Zero-coupon bond Memorize equals its time to maturity (on a coupon date)
- Coupon bond Memorize always below its maturity
- Longer maturity Use it longer duration
- Higher coupon Use it shorter duration, as cash arrives sooner
- Higher yield Use it shorter duration, as late flows are discounted harder
- Time passing Use it shorter duration, with a small jump up after each coupon
A zero-coupon bond has one payment, so its weight is 1 and its duration is its time to maturity: a 5-year zero has a duration of 5.000 on a coupon date. Every other straight bond pays something earlier, which pulls the average time below the maturity. The bigger the coupon, the earlier the cash and the lower the duration; for the 5-year bond, an 8% coupon gives 4.357 years against 4.478 for 6%. A higher yield shrinks the present value of the late payments most, so it also lowers the duration.
Exam tip When you are asked which bond has the longest duration, start with the zero-coupon one, then the lowest coupon, then the lowest yield, then the longest maturity.
Memorize this
MemorizeMacaulay duration properties
| Change | Effect on MacDur |
|---|---|
| Zero-coupon bond | = maturity |
| Coupon bond | < maturity |
| Higher coupon | Shorter |
| Higher yield | Shorter |
| Longer maturity | Longer |
| Time passes | Shorter |
Memory hook Anything that brings cash flows in sooner (a bigger coupon, a harsher discount on the late ones, less time left) pulls the balance point earlier.
Know it cold MacDur = PV-weighted average time to receipt, in years. Semiannual: periods ÷ 2.
MemorizeBetween coupon dates
Memory hook The weights stay put; every payment just moves closer by the elapsed fraction.
Know it cold MacDur = MacDur at the last coupon date − t/T (periods). Annual bond: subtract the years elapsed.
MemorizeWeights
Memory hook Weight = PV of the flow ÷ the bond’s full price, never ÷ par.
Know it cold The weights sum to 1. The final flow (coupon + par) usually carries most of the weight.
- Table of weighted times Memorize PV, weight, time × weight, add up; shows the idea
- Closed-form formula Use it one expression, on a coupon date; the fast exam route
- Spreadsheet DURATION function Know the idea handles a settlement date between coupons
- Zero-coupon bond Memorize equals its time to maturity (on a coupon date)
- Coupon bond Memorize always below its maturity
- Longer maturity Use it longer duration
- Higher coupon Use it shorter duration, as cash arrives sooner
- Higher yield Use it shorter duration, as late flows are discounted harder
- Time passing Use it shorter duration, with a small jump up after each coupon
Quick example
A 4-year, 3% annual bond at a 4% yield has price 96.370. Weighting each year by its share of that price gives 3.825 years.
- (1.04y^x4−1)×0.03+0.04=STO1 the denominator, 0.045096
- 4×(0.03−0.04)+1.04=÷RCL1= 22.1750
- +|-+(1.04÷0.04)= 3.8250
y^x power · STO store · RCL recall a stored number · +|- change sign
- 1.04ENTER4y^x1−0.03×0.04+STO1 the denominator, 0.045096
- 0.03ENTER0.04−4×1.04+RCL1÷ 22.1750
- 1.04ENTER0.04÷−CHS 3.8250
ENTER enter (on the HP, puts the number on the stack) · y^x power · STO store · RCL recall a stored number · CHS change sign
Quick example
A semiannual bond has a weighted average time of 7.64 half-year periods. 7.64 ÷ 2 = 3.82 years.
- 7.64÷2= 3.82
- 7.64ENTER2÷ 3.82
ENTER enter (on the HP, puts the number on the stack)
Quick example
6-year, 4% annual bond at a 5% yield, on a coupon date (t/T = 0). 21.0000 − 0.99 ÷ 0.063604 = 5.435 years.
- (1.05y^x6−1)×0.04+0.05=STO1 the denominator, 0.063604
- 6×(0.04−0.05)+1.05=÷RCL1= 15.5651
- +|-+(1.05÷0.05)= 5.4349
y^x power · STO store · RCL recall a stored number · +|- change sign
- 1.05ENTER6y^x1−0.04×0.05+STO1 the denominator, 0.063604
- 0.04ENTER0.05−6×1.05+RCL1÷ 15.5651
- 1.05ENTER0.05÷−CHS 5.4349
ENTER enter (on the HP, puts the number on the stack) · y^x power · STO store · RCL recall a stored number · CHS change sign
Quick example
A bond’s Macaulay duration is 6.10 years on its last coupon date (annual coupons). 0.4 years later, with the yield unchanged: 6.10 − 0.4 = 5.70 years.
- 6.1−0.4= 5.7
- 6.1ENTER0.4− 5.7
ENTER enter (on the HP, puts the number on the stack)
How it is asked
-
MacDur from a weighted-time table or closed form
4-year, 3% annual bond, yield to maturity (YTM) 4%. Macaulay duration?
Closed form: 26.0000 − 1.00 ÷ 0.045096 = 3.825. The trap is maturity (4.00).
-
Semiannual bond
Weighted time computed in half-year periods is 5.412 for a 3-year semiannual bond.
5.412 ÷ 2 = 2.71 years. Forgetting to halve gives 5.41.
-
Duration between coupon dates
MacDur 5.80 on the last coupon date; 0.20 years later.
5.80 − 0.20 = 5.60 years.
-
Properties
Which has the longest MacDur: a 5-year zero, a 4% coupon bond or an 8% coupon bond of the same maturity and yield?
The zero (duration = maturity). Higher coupon shortens duration.
Exam traps
- Weighting by undiscounted cash flows, or dividing by par instead of the bond's price. Weights are PV shares and sum to 1.
- Forgetting to divide a semiannual duration (in periods) by 2.
- Thinking Macaulay duration can exceed maturity for a straight coupon bond. It cannot.
- Adding t/T between coupon dates. The duration falls: subtract it.
Checkpoint
4 exam-style questions. About 90 seconds each.
1A 3-year, 6% annual-coupon bond yields 8% (price 94.846). Its Macaulay duration is closest to:
2A 2-year, 6% semiannual-coupon bond is priced at par. Computed in half-year periods, its weighted average time to receipt is 3.829. Its annualized Macaulay duration is closest to:
3On its last coupon date a bond's Macaulay duration was 4.20 years. One quarter of a year later, with the yield unchanged, its Macaulay duration is closest to:
4Three bonds have the same 5-year maturity and yield: a zero-coupon bond, a 4% coupon bond and an 8% coupon bond. The bond with the longest Macaulay duration is the:
Key takeaways
- MacDur = PV-weighted average time to receipt of the cash flows.
- Zero: MacDur = maturity. Coupon bond: below maturity.
- Semiannual: compute in periods, divide by 2. Between coupons: subtract t/T.
- Higher coupon or higher yield gives a shorter duration; duration falls with time.
Quick example
A 4-year, 3% annual bond at a 4% yield has price 96.370. Weighting each year by its share of that price gives 3.825 years.
- (1.04y^x4−1)×0.03+0.04=STO1 the denominator, 0.045096
- 4×(0.03−0.04)+1.04=÷RCL1= 22.1750
- +|-+(1.04÷0.04)= 3.8250
y^x power · STO store · RCL recall a stored number · +|- change sign
- 1.04ENTER4y^x1−0.03×0.04+STO1 the denominator, 0.045096
- 0.03ENTER0.04−4×1.04+RCL1÷ 22.1750
- 1.04ENTER0.04÷−CHS 3.8250
ENTER enter (on the HP, puts the number on the stack) · y^x power · STO store · RCL recall a stored number · CHS change sign
Quick example
A semiannual bond has a weighted average time of 7.64 half-year periods. 7.64 ÷ 2 = 3.82 years.
- 7.64÷2= 3.82
- 7.64ENTER2÷ 3.82
ENTER enter (on the HP, puts the number on the stack)
Quick example
6-year, 4% annual bond at a 5% yield, on a coupon date (t/T = 0). 21.0000 − 0.99 ÷ 0.063604 = 5.435 years.
- (1.05y^x6−1)×0.04+0.05=STO1 the denominator, 0.063604
- 6×(0.04−0.05)+1.05=÷RCL1= 15.5651
- +|-+(1.05÷0.05)= 5.4349
y^x power · STO store · RCL recall a stored number · +|- change sign
- 1.05ENTER6y^x1−0.04×0.05+STO1 the denominator, 0.063604
- 0.04ENTER0.05−6×1.05+RCL1÷ 15.5651
- 1.05ENTER0.05÷−CHS 5.4349
ENTER enter (on the HP, puts the number on the stack) · y^x power · STO store · RCL recall a stored number · CHS change sign
Quick example
A bond’s Macaulay duration is 6.10 years on its last coupon date (annual coupons). 0.4 years later, with the yield unchanged: 6.10 − 0.4 = 5.70 years.
- 6.1−0.4= 5.7
- 6.1ENTER0.4− 5.7
ENTER enter (on the HP, puts the number on the stack)
All Fixed Income formulas, every lesson
Practice exam-style questions on Interest Rate Risk and Return
Questions about this lesson?
Where this comes back
- Modified Duration, Money Duration and PVBP Fixed Income
- Convexity and Portfolio Duration Fixed Income
- Effective Duration, Key Rate Duration and Empirical Duration Fixed Income
- Introduction to Risk Management Portfolio Construction
- Basics of Portfolio Planning and Construction Portfolio Construction
Questions candidates ask
How do you calculate Macaulay duration?
Multiply each payment's time to receipt by its share of the bond's present value, then add the results. On a coupon date, a closed-form formula gives the same number without building the table.
Why is Macaulay duration less than maturity?
Coupons arrive before maturity, so the weighted average time of all payments is shorter than the time to the last one. Only a zero-coupon bond, with a single payment, has a duration equal to its maturity.
What is the Macaulay duration of a zero-coupon bond?
Exactly its time to maturity, because the only cash flow arrives then and carries a weight of 1.
Does Macaulay duration change between coupon dates?
Yes. With the yield unchanged it falls by the elapsed fraction of the coupon period, t/T, because every payment is that much closer. It jumps up slightly when a coupon is paid.
Spotted an error? Tell us and we will fix it.