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.
Modified duration — the price sensitivity to a 1-point yield move:
=MDURATION(DATE(2026, 5, 15), DATE(2031, 3, 15), 5%, 4%, 2, 0)Result
4.2473Approximate 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.005Result
-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.
Related functions
More ways Google Sheets gets this done.
- ACCRINTCalculates the accrued interest of a security that has periodic payments.FinancialExcel
- ACCRINTMCalculates the accrued interest of a security that pays interest at maturity.FinancialExcel
- AMORLINCReturns the depreciation for an accounting period, or the prorated depreciation if the asset was purchased in the middle of a period.FinancialExcel
- COUPDAYBSCalculates the number of days from the first coupon, or interest payment, until settlement.FinancialExcel
- COUPDAYSCalculates the number of days in the coupon, or interest payment, period that contains the specified settlement date.FinancialExcel
- COUPDAYSNCCalculates the number of days from the settlement date until the next coupon, or interest payment.FinancialExcel