Analyst Dojo
Lesson 3 of 3 11–14% of the exam

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.

12 min cram, 44 min full read. Based on the 2027 CFA® Program Level I curriculum, Fixed Income, Learning Module 10. Also part of the 2026 curriculum, so it applies to the November 2026 exam too.

Tailor this to you: take the self-assessment

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.

Cram mode: the one-screen version of this lesson. Switch to Full for the explanations, worked examples and interactives.

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.

  1. Weight = PV ÷ price. Year 1: 5.7143 ÷ 104.3295 = 0.0548. Weight by present value and divide by the price, not by par.
  2. 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.

5-year, 6% annual coupon at a 5% yield
YearCash flowPV at 5%WeightYear × weight
165.71430.05480.0548
265.44220.05220.1043
365.18300.04970.1490
464.93620.04730.1893
510683.05380.79613.9804
Total104.32951.00004.4778
Duration is the balance point of the bond's present values on the time line.
Macaulay duration Memorize
MacDur=∑t=1Nt×PV(CFt)PVFull\text{MacDur} = \sum_{t=1}^{N} t \times \frac{PV(CF_t)}{PV^{Full}}

The weight on payment tt is its present value over the price, and the sum of tt 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.

Three ways to find a Macaulay duration
Macaulay durationthe same number, three routes
  • 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.

Closed-form Macaulay duration Use it
MacDur=1+rr−1+r+N(c−r)c[(1+r)N−1]+r−tT\text{MacDur} = \frac{1 + r}{r} - \frac{1 + r + N(c - r)}{c\left[(1 + r)^{N} - 1\right] + r} - \frac{t}{T}

Here rr is the yield per period, cc the coupon rate per period, NN the number of periods left, tt the days since the last coupon and TT the days in the period. On a coupon date t/T=0t/T = 0. This is the closed-form duration formula .

Rearrange itMacaulay duration of a bond on a coupon date
The question asks for
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

On your calculator
  1. (1.05y^x5−1)×0.06+0.05=STO1the denominator
  2. 5×(0.06−0.05)+1.05=÷RCL1=
  3. +|-+(1.05÷0.05)=4.478 years

y^x power · STO store · RCL recall a stored number · +|- change sign

  1. 1.05ENTER5y^x1−0.06×0.05+STO1the denominator
  2. 0.06ENTER0.05−5×1.05+RCL1÷
  3. 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.

Annualized Macaulay duration Memorize
MacDur (years)=MacDur (periods)m\text{MacDur (years)} = \frac{\text{MacDur (periods)}}{m}

Here mm 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, t/Tt/T, 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 t/Tt/T, measured in periods.

Macaulay duration between coupon dates Use it
MacDurt=MacDur0−tT\text{MacDur}_{t} = \text{MacDur}_{0} - \frac{t}{T}
Rearrange itBetween coupon dates: Macaulay duration after time has passed
The question asks for
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

On your calculator
  1. 7.35−0.15=7.2
  1. 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?

What makes Macaulay duration longer or shorter
Macaulay duration of a straight bondother things equal
  • 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

ChangeEffect on MacDur
Zero-coupon bond= maturity
Coupon bond< maturity
Higher couponShorter
Higher yieldShorter
Longer maturityLonger
Time passesShorter

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.

Three ways to find a Macaulay duration
Macaulay durationthe same number, three routes
  • 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
What makes Macaulay duration longer or shorter
Macaulay duration of a straight bondother things equal
  • 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
Macaulay duration Memorize
MacDur=∑t=1Nt×PV(CFt)PVFull\text{MacDur} = \sum_{t=1}^{N} t \times \dfrac{PV(CF_t)}{PV^{Full}}
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.

On your calculator
  1. (1.04y^x4−1)×0.03+0.04=STO1 the denominator, 0.045096
  2. 4×(0.03−0.04)+1.04=÷RCL1= 22.1750
  3. +|-+(1.04÷0.04)= 3.8250

y^x power · STO store · RCL recall a stored number · +|- change sign

  1. 1.04ENTER4y^x1−0.03×0.04+STO1 the denominator, 0.045096
  2. 0.03ENTER0.04−4×1.04+RCL1÷ 22.1750
  3. 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

Annualized Macaulay duration Memorize
MacDur (years)=MacDur (periods)m\text{MacDur (years)} = \dfrac{\text{MacDur (periods)}}{m}
Quick example

A semiannual bond has a weighted average time of 7.64 half-year periods. 7.64 ÷ 2 = 3.82 years.

On your calculator
  1. 7.64÷2= 3.82
  1. 7.64ENTER2÷ 3.82

ENTER enter (on the HP, puts the number on the stack)

Closed-form Macaulay duration Use it
MacDur=1+rr−1+r+N(c−r)c[(1+r)N−1]+r−tT\text{MacDur} = \dfrac{1 + r}{r} - \dfrac{1 + r + N(c - r)}{c\left[(1 + r)^{N} - 1\right] + r} - \dfrac{t}{T}
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.

On your calculator
  1. (1.05y^x6−1)×0.04+0.05=STO1 the denominator, 0.063604
  2. 6×(0.04−0.05)+1.05=÷RCL1= 15.5651
  3. +|-+(1.05÷0.05)= 5.4349

y^x power · STO store · RCL recall a stored number · +|- change sign

  1. 1.05ENTER6y^x1−0.04×0.05+STO1 the denominator, 0.063604
  2. 0.04ENTER0.05−6×1.05+RCL1÷ 15.5651
  3. 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

Macaulay duration between coupon dates Use it
MacDurt=MacDur0−tT\text{MacDur}_{t} = \text{MacDur}_{0} - \dfrac{t}{T}
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.

On your calculator
  1. 6.1−0.4= 5.7
  1. 6.1ENTER0.4− 5.7

ENTER enter (on the HP, puts the number on the stack)

How it is asked

  1. 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).

  2. 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.

  3. Duration between coupon dates

    MacDur 5.80 on the last coupon date; 0.20 years later.

    5.80 − 0.20 = 5.60 years.

  4. 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.

  1. 1A 3-year, 6% annual-coupon bond yields 8% (price 94.846). Its Macaulay duration is closest to:

  2. 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:

  3. 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:

  4. 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.
Macaulay duration Memorize
MacDur=∑t=1Nt×PV(CFt)PVFull\text{MacDur} = \sum_{t=1}^{N} t \times \dfrac{PV(CF_t)}{PV^{Full}}
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.

On your calculator
  1. (1.04y^x4−1)×0.03+0.04=STO1 the denominator, 0.045096
  2. 4×(0.03−0.04)+1.04=÷RCL1= 22.1750
  3. +|-+(1.04÷0.04)= 3.8250

y^x power · STO store · RCL recall a stored number · +|- change sign

  1. 1.04ENTER4y^x1−0.03×0.04+STO1 the denominator, 0.045096
  2. 0.03ENTER0.04−4×1.04+RCL1÷ 22.1750
  3. 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

Annualized Macaulay duration Memorize
MacDur (years)=MacDur (periods)m\text{MacDur (years)} = \dfrac{\text{MacDur (periods)}}{m}
Quick example

A semiannual bond has a weighted average time of 7.64 half-year periods. 7.64 ÷ 2 = 3.82 years.

On your calculator
  1. 7.64÷2= 3.82
  1. 7.64ENTER2÷ 3.82

ENTER enter (on the HP, puts the number on the stack)

Closed-form Macaulay duration Use it
MacDur=1+rr−1+r+N(c−r)c[(1+r)N−1]+r−tT\text{MacDur} = \dfrac{1 + r}{r} - \dfrac{1 + r + N(c - r)}{c\left[(1 + r)^{N} - 1\right] + r} - \dfrac{t}{T}
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.

On your calculator
  1. (1.05y^x6−1)×0.04+0.05=STO1 the denominator, 0.063604
  2. 6×(0.04−0.05)+1.05=÷RCL1= 15.5651
  3. +|-+(1.05÷0.05)= 5.4349

y^x power · STO store · RCL recall a stored number · +|- change sign

  1. 1.05ENTER6y^x1−0.04×0.05+STO1 the denominator, 0.063604
  2. 0.04ENTER0.05−6×1.05+RCL1÷ 15.5651
  3. 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

Macaulay duration between coupon dates Use it
MacDurt=MacDur0−tT\text{MacDur}_{t} = \text{MacDur}_{0} - \dfrac{t}{T}
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.

On your calculator
  1. 6.1−0.4= 5.7
  1. 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

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.

  1. The sources of return from a fixed-rate bond
  2. Investment horizon, price risk vs reinvestment risk, and duration gap
  3. Macaulay duration: definition and calculation

Ask Sensei Listen instead

Questions on Macaulay duration: definition and calculation

Learn with Sensei, out loud The voice tutor, in early access

Sensei teaches the lesson aloud and stops when you interrupt: "wait, why is the geometric mean lower?" It answers with the lesson's own example, then quizzes you by voice. Every account can try Sensei on one module, with one voice question.

USD 149 a month founding price (regular USD 199), kept for as long as you stay subscribed. Everything in Plus included.

In active development and improving every day. Send feedback · Plans and pricing

Analyst Dojo Plus

Your free review list holds 10 items.

Plus keeps everything you save, for USD 19 a month. To make room on the free plan, remove something from your review list.

See Plus

Lessons, checkpoints and the lesson questions in practice stay free. Compare plans