DURATION Function

Excel 2007+

Summary

The DURATION function calculates the Macaulay duration for a bond assuming a $100 par value. This advanced financial metric measures a bond's price sensitivity to yield changes by computing the weighted average time to receive cash flows.

Syntax

DURATION(settlement, maturity, coupon, yld, frequency, [basis])

Parameters

Parameter Type Required Description
settlement Date Yes The date the security is delivered to or by the buyer
maturity Date Yes The date the security reaches maturity
coupon Number Yes Security's annual coupon interest rate
yld Number Yes Security's annual yield to maturity
frequency Number Yes Number of coupon payments per year
basis Number No Day count basis for interest calculation

Using the DURATION Function

DURATION is crucial for bond investors and portfolio managers. Macaulay duration helps predict how bond prices will change with interest rate movements. Longer duration bonds are more sensitive to yield changes, making this function essential for risk assessment and immunization strategies.

Common DURATION Examples

Calculate Duration for Semiannual Coupon Bond

=DURATION("7/1/2018","1/1/2048",0.08,0.09,2,1)

Returns approximately 10.92 years for a 30-year bond with 8% coupon, 9% yield, semiannual payments using actual/actual basis

Annual Coupon Bond Duration

=DURATION(DATE(2024,6,15),DATE(2034,6,15),0.05,0.045,1,0)

Calculates duration for 10-year annual coupon bond using US 30/360 convention

Frequently Asked Questions

Macaulay duration measures the weighted average time until a bond's cash flows are received, expressed in years. It's used to assess interest rate risk.

Different markets use different day count conventions. Basis lets you match your bond's specific convention for accurate calculations.

Common Errors and Solutions

#VALUE!

Cause: Settlement or maturity not recognized as valid dates

Solution: Use DATE function or ensure cells contain proper date values

#NUM!

Cause: Coupon or yield negative, frequency not 1/2/4, or settlement >= maturity

Solution: Verify coupon/yield > 0, frequency valid, settlement before maturity

#NUM!

Cause: Basis outside range 0-4

Solution: Use basis values: 0,1,2,3, or 4 only

Notes

  • Always use DATE() function for dates to avoid text parsing issues
  • Excel truncates settlement, maturity, frequency, basis to integers
  • Duration increases with time to maturity and decreases with higher yields
  • Function assumes $100 par value regardless of actual bond face value

Compatibility

Available in: Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021, Microsoft 365

Not available in: Excel 2003 and earlier

Content last reviewed: December 9, 2025
Update frequency: As needed
Excel versions tested: Excel 2007+