Skip to content
Google Sheets

MDURATION function in Google Sheets

Calculates the modified Macaulay duration of a security paying periodic interest, such as a US Treasury Bond, based on expected yield.

=MDURATION(settlement, maturity, rate, yield, frequency, [day_count_convention])

MDURATION syntax and parameters

Six arguments, five required.

  • settlementanyRequired

    The settlement date of the security, the date after issuance when the security is delivered to the buyer.

  • maturityanyRequired

    The maturity or end date of the security, when it can be redeemed at face or par value.

  • ratenumberRequired

    The annualized rate of interest.

  • yieldnumberRequired

    The expected annual yield of the security.

  • frequencynumberRequired

    The number of interest or coupon payments per year (1, 2, or 4).

  • day_count_conventionnumberOptional

    [ OPTIONAL - 0 by default ] - An indicator of what day count method to use. 0 indicates US (NASD) 30/360 - This assumes 30 day months and 360 day years as per the National Association of Securities Dealers standard, and performs specific adjustments to entered dates which fall at the end of months. 1 indicates Actual/Actual - This calculates based upon the actual number of days between the specified dates, and the actual number of days in the intervening years. Used for US Treasury Bonds and Bills, but also the most relevant for non-financial use. 2 indicates Actual/360 - This calculates based on the actual number of days between the specified dates, but assumes a 360 day year. 3 indicates Actual/365 - This calculates based on the actual number of days between the specified dates, but assumes a 365 day year. 4 indicates European 30/360 - Similar to 0, this calculates based on a 30 day month and 360 day year, but adjusts end-of-month dates according to European financial conventions.

MDURATION examples

Formulas you'll actually reuse.

  1. Modified duration — the price sensitivity to a 1-point yield move:

    =MDURATION(DATE(2026, 5, 15), DATE(2031, 3, 15), 5%, 4%, 2, 0)

    Result4.2473

  2. Approximate price change for a 50-basis-point rise in yields (about −2.1%):

    =-MDURATION(DATE(2026, 5, 15), DATE(2031, 3, 15), 5%, 4%, 2, 0) * 0.005

    Result-0.0212

MDURATION in Excel

Same name — your formula ports as-is.

Try MDURATION in the playground

Edit the example — nothing to install.

Preloaded with the MDURATION formula from Example 1 — change anything and watch it respond.

Loading the editor…