Tutorials › Exam FM - Financial Mathematics › Macaulay Duration As A Weighted-Average Time

Exam FM · Macaulay and Modified Duration · Tutorial 560 of 998

Macaulay Duration As A Weighted-Average Time

Learn to calculate Macaulay duration from dated bond cash flows and interpret the result as a present-value-weighted time.

Intermediate 9 min read

What You'll Learn

  • Define Macaulay duration using present-value weights for each payment.
  • Calculate duration from annual bond cash flows and an effective annual yield.
  • Keep payment times and yield periods consistent when cash flows occur partway through a year.
  • Convert a duration measured in coupon periods into years.
  • Identify why weighting payment dates by cash-flow amounts alone gives the wrong result.

What Macaulay Duration Measures

A bond produces payments at different dates. Its price is the present value of those payments, but the price alone does not summarize when the value is received. Macaulay duration gives a single time measure: it is the average payment date when each date is weighted by that payment’s share of the bond’s present value.

The weights matter. A dollar paid later usually contributes less to the price than a dollar paid sooner, because it is discounted for longer. Macaulay duration therefore does not generally equal the average of the payment dates weighted by the cash-flow amounts themselves.

Definition: Suppose a bond has positive cash flows \(C_j\) at times \(t_j\), and its price is \(P\). Let \(PV_j\) be the present value of the cash flow at time \(t_j\). The present-value weight of that cash flow is \(w_j=PV_j/P\). Macaulay duration is $$ D=\sum_j t_jw_j=\frac{\sum_j t_jPV_j}{P}. $$ The times \(t_j\) and the resulting duration use the same time unit. For positive cash flows, the weights are nonnegative and sum to 1.

To calculate the present values, first state the yield convention. For example, if \(i\) is an effective annual yield and the annual effective accumulation model applies, a payment \(C_j\) at time \(t_j\), measured in years, has present value \(C_jv^{t_j}=C_j(1+i)^{-t_j}\). If the yield is quoted per coupon period instead, use coupon-period times and that period’s yield consistently. The two conventions should not be mixed.

This tutorial focuses on duration as a weighted-average time. The calculation uses the bond’s cash flows, their dates, and the yield used to find their present values. It is not the unweighted average date, nor does the duration calculation itself require converting the result into another measure.

Why the Weights Produce an Average

The weighted-average interpretation follows directly from the definition of price. The price is the sum of the present values of all payments. Divide each present value by that sum to express it as a share of the total price.

$$ \sum_j w_j =\sum_j\frac{PV_j}{P} =\frac{\sum_jPV_j}{P} =\frac{P}{P} =1. $$

The weights therefore add to 1. Multiplying each payment time by its share of price and adding gives the weighted-average time:

$$ D=\sum_j t_j\frac{PV_j}{P} =\frac{\sum_jt_jPV_j}{P}. $$

For positive bond payments, a payment with a larger present-value contribution receives a larger weight. The derivation also explains an important limitation: if some cash flows are negative, the corresponding weights may be negative, so the calculation need not be an ordinary average in the usual sense.

Calculate Duration From Annual Cash Flows

For annual cash flows and an effective annual yield, make a row for each payment date. Discount each payment to time 0, add the present values to obtain the price, and divide each present value by the price to obtain its weight. Multiplying each time by its weight then gives the duration.

Worked Example: A Three-Year Bond at Par

A hypothetical bond has face value $100, pays a 10% annual coupon, and returns face value with its final coupon at the end of year 3. Its effective annual yield is 10%. Calculate its Macaulay duration in years. The bond pays annually, with no payment between coupon dates.

Method. List the three dated payments, discount each at the effective annual yield, and use the resulting present values as weights. This method avoids treating the payment amounts as the weights.

The cash flows are $10 at time 1, $10 at time 2, and $110 at time 3. Here \(v=1/1.10\). Their present values are:

$$ PV_1=\frac{10}{1.10}=9.090909,\qquad PV_2=\frac{10}{1.10^2}=8.264463,\qquad PV_3=\frac{110}{1.10^3}=82.644628. $$

The price is \(9.090909+8.264463+82.644628=100.000000\). The corresponding weights are \(9.090909/100=0.090909\), \(8.264463/100=0.082645\), and \(82.644628/100=0.826446\). They sum to 1.000000.

Weight each payment time by its present-value weight:

$$ D=1(0.090909)+2(0.082645)+3(0.826446) =0.090909+0.165289+2.479339 =2.735537\text{ years}. $$

Rounded to three decimal places, the duration is 2.736 years. As a check, the weighted time lies between the first and last payment dates, and the largest weight belongs to the final payment. The result is therefore consistent with the cash-flow pattern.

Keep the Time Unit Consistent

A yield and a time unit must describe the same accumulation convention. If payments occur every six months and the quoted rate is an effective rate per six-month period, discount using the number of six-month periods. The weighted-average time will first be in six-month periods; convert it to years only after calculating it. Alternatively, use an annual effective yield with times measured in years and discount fractional years according to that annual model.

Worked Example: Uneven Payments on Half-Year Dates

A hypothetical instrument pays $20.80 after half a year, $33.74592 after one and a half years, and $58.492928 after two years. The effective yield is 4% per half-year period. Calculate Macaulay duration in years.

Method. Measure time in half-year periods because the yield is given per half-year. The payment times are 1, 3, and 4 periods. This avoids using an annual rate with period counts that do not match it.

Discount the payments using \(1.04\) per period:

$$ PV_1=\frac{20.80}{1.04}=20,\qquad PV_2=\frac{33.74592}{1.04^3}=30,\qquad PV_3=\frac{58.492928}{1.04^4}=50. $$

The price is \(20+30+50=100\), so the present-value weights are \(0.20\), \(0.30\), and \(0.50\). The duration in half-year periods is

$$ D=1(0.20)+3(0.30)+4(0.50) =0.20+0.90+2.00 =3.10\text{ half-year periods}. $$

There are two half-year periods in one year, so \(3.10/2=1.55\) years. The answer is 1.550 years. As a check, the weighted time of 3.10 periods lies between the earliest date of 1 period and the latest date of 4 periods.

A Coupon Bond Below Par

The same steps apply when the coupon rate differs from the yield. The coupon determines the promised payments; the yield determines their present values. In particular, a bond’s price need not equal its face value for the duration calculation to work.

Worked Example: A Two-Year Bond Below Par

A hypothetical bond has face value $100, pays an 8% annual coupon, and matures in two years. Its effective annual yield is 10%. Calculate its Macaulay duration in years. Assume the only payments are the annual coupons and the final repayment of face value.

Method. Discount the coupon at year 1 and the coupon plus principal at year 2, then weight each date by its share of price. This avoids using face value or coupon rate in place of the actual present-value weights.

The payments are $8 at time 1 and $108 at time 2. Their present values are

$$ PV_1=\frac{8}{1.10}=7.272727,\qquad PV_2=\frac{108}{1.10^2}=89.256198. $$

The price is \(7.272727+89.256198=96.528926\). The weights are \(7.272727/96.528926=0.075342\) and \(89.256198/96.528926=0.924658\). They sum to 1.000000.

Thus,

$$ D=1(0.075342)+2(0.924658) =0.075342+1.849315 =1.924658\text{ years}. $$

Rounded to three decimal places, the duration is 1.925 years. The final payment contributes more than 92% of the price, so the weighted-average time is close to year 2, as expected.

Common Mistake: Weighting by Cash-Flow Amount

A frequent error is to calculate a weighted average using the undiscounted payments as weights. For the three-year par bond above, that incorrect calculation is

$$ \frac{1(10)+2(10)+3(110)}{10+10+110} =\frac{360}{130} =2.769231\text{ years}. $$

This is not Macaulay duration: the denominator and weights use cash-flow amounts, not present values. The correct calculation uses present values of $9.090909, $8.264463, and $82.644628, producing \(2.735537\) years. The two answers differ because discounting changes the relative contribution of each payment to the bond’s price.

Other errors arise when the yield is per coupon period but the times are entered in years, or when duration is calculated in coupon periods and reported as years without conversion. Before calculating, write down the yield period, the units used for each time, and the unit requested for the answer.

Key takeaway: Macaulay duration is the average payment time using each payment’s share of the bond price as its weight. Discount the cash flows first, divide by their total present value, and keep the time unit consistent with the yield convention.

Check Your Understanding

For each problem, calculate Macaulay duration using the stated yield convention and report it in the requested time unit.

  1. A bond pays $60 at the end of year 1 and $60 at the end of year 2. Its effective annual yield is 10%. Calculate its duration in years. (Answer: 1.476 years)
  2. A zero-coupon bond makes a single payment at time 3.5 years. Its effective annual yield is 6%. Calculate its duration in years. (Answer: 3.500 years)
  3. An instrument pays $25.50, $26.01, and $53.0604 at the ends of half-year periods 1, 2, and 3, respectively. Its effective yield is 2% per half-year. Calculate its duration in years. (Answer: 1.125 years)
  4. A bond pays $5 at the end of year 1 and $105 at the end of year 2. Its effective annual yield is 5%. Calculate its duration in years. (Answer: 1.952 years)
  5. A portfolio consists of two positive-cash-flow bonds. Bond A has price $80 and Macaulay duration 2 years; bond B has price $120 and Macaulay duration 5 years. Calculate the portfolio’s Macaulay duration, assuming the portfolio price is the sum of the two bond prices. (Answer: 3.800 years)
Clinical Biostats