Formula Bro

Math and physics formulas, explained like you are new.


Macaulay Duration

In one sentence: Macaulay duration is the average wait, in years, until a bond pays you back, where each payment counts according to how much it is worth today.

D=1P∑t=1ntCFt(1+y)tD = \frac{1}{P} \sum_{t=1}^{n} \frac{t \, CF_t}{(1 + y)^{t}}

Read it out loud: “D equals one divided by P, times the sum, for t from 1 to n, of t times CF t, divided by 1 plus y to the power t. D is the Macaulay duration in years, P is the bond's price, CF t is the cash flow in year t, and y is the yield.”

Before you start

The ideas and signs this page uses, explained from zero. For powers of ten, Greek letters and other notation in general, see Math basics.

Average and weighted average

An average is a total divided by the number of pieces. A weighted average gives some pieces more say than others. Each value is multiplied by its weight, the products are added, and the total is divided by the sum of the weights. Here the weights are the present values of the payments, so payments that are worth more count for more.

Cash flow and CFtCF_t

A cash flow is money that moves on a given date. For a bond it is each coupon paid, and in the last year also the face value. CFtCF_t is read ‘CF sub t’ and means the cash flow in year t. The small t is a label that says which year.

Present value

The present value of a future payment is what it is worth today. Divide the payment by (1+y)(1 + y) once for each year until it arrives, using the yield y. The present values of all the payments add up to the bond’s price.

Years as a unit of time

A year is the unit of time in this formula, so the answer comes out in years. A duration of 2.86 years means the average wait is 2 years and about 10 months, because 0.86 of a year is about 10 months.

The sum sign ∑\sum

The Greek capital letter sigma, written ∑\sum, means add up. The letter and number under it, t=1t = 1, say where to start, and the letter above it, nn, says where to stop. So ∑t=13\sum_{t=1}^{3} means add up the terms for t = 1, t = 2 and t = 3.

What each symbol means

SymbolMeaning

DD

The Macaulay duration, measured in years. It is the average time until the bond’s cash flows arrive, weighted by how much each one is worth today. A bond with coupons has a duration shorter than its final maturity.

PP

The price of the bond today, in dollars. It equals the sum of all the present values, so dividing by it turns the weighted total into an average.

∑t=1n\sum_{t=1}^{n}

The sum sign. It means add up the terms for every year from t=1t = 1 to t=nt = n.

tt

The year number of a cash flow, counting 1, 2, 3 and so on up to n. It is the time in years, and it also acts as the weight in the formula.

CFtCF_t

The cash flow in year t, in dollars: the coupon, plus the face value in the final year. A 3-year bond with a 50 dollar coupon has CF1=50CF_1 = 50, CF2=50CF_2 = 50 and CF3=1050CF_3 = 1050.

yy

The yield per year, as a decimal. A value of 0.05 means 5% a year. It sets the divisor (1+y)(1 + y) that turns each cash flow into today’s money.

nn

The number of years until the last cash flow, in years. A 3-year bond has n=3n = 3.

The formula piece by piece

CFt(1+y)t\frac{CF_t}{(1 + y)^{t}}

The present value of one cash flow. The cash flow in year t is divided by (1+y)(1 + y) once for each year until it arrives. These are the pieces that add up to the bond’s price.

tCFt(1+y)t\frac{t \, CF_t}{(1 + y)^{t}}

The present value weighted by its year. Multiplying each present value by its year t gives a weight that combines how much the payment is worth with how late it arrives.

∑t=1ntCFt(1+y)t\sum_{t=1}^{n} \frac{t \, CF_t}{(1 + y)^{t}}

The weighted values added up over every year. The total is measured in dollar-years, a combination of money and time.

1P\frac{1}{P}

Divide by the price. Dividing by P, the total present value, turns the dollar-years into years, which is the average time.

D=1P∑t=1ntCFt(1+y)tD = \frac{1}{P} \sum_{t=1}^{n} \frac{t \, CF_t}{(1 + y)^{t}}

The Macaulay duration is the average time, in years, to the bond’s cash flows, found by adding up each cash flow’s present value times its year and dividing by the price.

Dmod=D1+yD_{\text{mod}} = \frac{D}{1 + y}

Modified duration, another standard form. Dividing D by (1+y)(1 + y) gives a number that estimates the percent change in the price for a small change in the yield.

What the formula is doing, and why

Macaulay duration is an average time. It asks: on average, when does the money from this bond arrive? A bond pays a coupon each year and its face value at the end, so its money is spread over several dates. The duration combines all those dates into one number of years. That makes it easy to compare bonds with different coupons and different lengths.

Why weight by present value? A payment in year 1 and a payment in year 3 are not worth the same amount today, even when their face sizes are close. Weighting each date by the present value of the payment on that date means the payments that matter most to the price count for the most. Dividing by the price at the end then gives a true average.

Why multiply by the year tt? The year number is the time of the payment. Multiplying each present value by its year adds up how much value sits at each point in time, so late money counts for more than early money. Dividing that total by PP, which is the total value, turns the weighted total into an average time, measured in years.

Why is the answer shorter than the maturity? Coupons arrive before the end, so part of the bond’s value comes early. A 3-year bond with coupons therefore has a duration below 3 years. A zero-coupon bond pays only at the end, so its Macaulay duration equals its maturity. This is a useful way to see how much of a bond’s value arrives early.

Modified duration and the price. Dividing by (1+y)(1 + y) gives the modified duration, Dmod=D1+yD_{\text{mod}} = \frac{D}{1 + y}. For small changes in the yield, the percent change in the price is roughly minus the modified duration times the change in yield. A modified duration of 2.72 means a 1 percentage point rise in yield cuts the price by roughly 2.72%. The bond price page shows the exact price change.

An everyday picture

Imagine the bond as a plank with weights hung along it, one weight for each year. Each weight is the present value of that year’s payment, so heavy payments hang heavier. Duration is the balance point of the plank, the place where it would sit level on one finger. If most of the weight hangs near the start, the balance point sits near the start and the duration is short. If the weight hangs far to the right, near the final repayment, the balance point moves right and the duration is long.

Worked example: Duration of a 3-year bond with a 5% coupon

A made-up bond has a face value of 1000 dollars, pays a 5% coupon, so 50 dollars at the end of each year, and matures in 3 years. The yield is 5% a year, so the bond’s price is 1000 dollars, as shown on the bond price page. Its cash flows are 50 dollars at the end of year 1, 50 dollars at the end of year 2, and 1050 dollars at the end of year 3, which is the last coupon plus the face value.

  1. List each cash flow with its year. Year 1 brings 50 dollars, year 2 brings 50 dollars, and year 3 brings 1050 dollars, the final coupon plus the face value. Writing each amount next to its year keeps the amount and the time together, which is exactly what the formula needs.
  2. Find the present value of each cash flow at a 5% yield. Each payment is divided by 1.051.05 once for each year it waits. Year 1: 501.05=47.62\frac{50}{1.05} = 47.62 dollars. Year 2: 501.052=501.1025=45.35\frac{50}{1.05^{2}} = \frac{50}{1.1025} = 45.35 dollars. Year 3: 10501.053=10501.157625=907.03\frac{1050}{1.05^{3}} = \frac{1050}{1.157625} = 907.03 dollars.
  3. Check that the present values add up to the price. The three present values add to 47.62+45.35+907.03=1000.0047.62 + 45.35 + 907.03 = 1000.00 dollars, which matches the bond’s price of 1000 dollars. This check confirms that the discounting was done correctly before the next step.
  4. Multiply each present value by its year. The weights are the year numbers: 1×47.62=47.621 \times 47.62 = 47.62, 2×45.35=90.702 \times 45.35 = 90.70 and 3×907.03=2721.093 \times 907.03 = 2721.09. Adding them gives a weighted total of 2859.412859.41, measured in dollar-years, which is a total of money times time.
  5. Divide the weighted total by the price. The price is P=1000P = 1000 dollars, so D=2859.411000=2.86D = \frac{2859.41}{1000} = 2.86. Dollar-years divided by dollars leaves years, so the Macaulay duration is 2.86 years.
  6. Find the modified duration for a yield change. Divide the duration by 1+y=1.051 + y = 1.05 to get 2.861.05=2.72\frac{2.86}{1.05} = 2.72. The price at a 6% yield was 973.27 dollars, a fall of about 2.67%, which is close to the 2.72% estimate for a 1 percentage point rise.

Answer: The Macaulay duration is about 2.86 years, shorter than the bond’s 3-year life, because part of its value arrives early in the coupons. Its modified duration is about 2.72, which estimates how much the price falls for each 1 percentage point rise in yield.

The numbers in this example are recomputed by script every time the site is built.

Common mistakes

Where you will meet it

Questions people ask

Why is it called Macaulay duration?

It is named after the economist Frederick Macaulay, who introduced this measure of the average time to a bond’s cash flows. The word duration here means a length of time, not how long the bond lasts.

Is a zero-coupon bond’s duration the same as its maturity?

Yes. A zero-coupon bond makes only one payment, at the end, so all of its value arrives at its maturity date. Its Macaulay duration equals its maturity in years.

Why does the duration fall when the yield is higher?

A higher yield makes later payments count for less in today’s money, so the weight moves toward the earlier payments. The average time gets shorter. The effect is small for short bonds and larger for long bonds.

Sources

  1. Macaulay duration, Wikipedia
  2. Present value, Wikipedia

| All Finance formulas |

Published 2026-10-23. Plain-text copy for AI agents and readers: finance/macaulay-duration.md.