Research : Modified Duration

Well, I talk about it often enough! This one leans a little too far to the “mathematical” to be considered mainstream fare, but I had to provide it in order that the keeners would have a rough idea of what I say*. Look for the research link!

*Assuming, of course, that the keeners care about understanding what I say!

Update and Bump, 2007-10-27: I have received a rather patronizing communication from a correspondent who claims that the formula given in the article for modified duration is incorrect.



He claims that the variable “f” should always be equal to one and attaches two pages of calculus (including patronizing commentary) that proves it.

Alas, my correspondent has forgotten to ask himself the questions that any investment manager should ask himself – particularly if holding himself out to be a quant:

  • What assumptions are made, explicitly and implicitly, in the course of this calculation?
  • Have I thoroughly checked these assumptions (insofar as it is possible to check assumptions!) ?
  • What if I’m wrong?

In this particular case, my correspondent has slipped up by assuming that “yield-to-maturity” (the “y” in the equation) is equal to the internal rate of return.

It ain’t. Yield-to-Maturity is, by street convention, equal to N times the coupon-period return, where N is the number of coupons per year. This point comes up over and over again – on this blog, for instance, there is a very similar discussion on Research : Yield from On-Line Calculator. It’s a tricky point and, in this degenerate age where one can find internal rate of return on Excel more easily than by explicit trial-and-error approximations, one that is easily forgotten.

Ah, for the good old days! When men were men, when you had to understand a calculation before you could perform it, and no back-of-an-envelope was too humble to serve as a scratch pad!

I have uploaded an MS-Excel Spreadsheet in which two sets of calculations are made – the way in which my correspondent does calculations, and the way in which we do it on Planet Earth. I believe that my computer – and my Excel programme – are bug-free, so there will be no virus transmission; I believe that all reasonable precautions are made with my site and my hosting provider so that the spreadsheet will not be hacked after upload; and I believe that even if a macro-virus should reach my readers’ computers, their anti-virus software will prevent harm.

But what if I’m wrong? I have also uploaded PDF file that reflects the spreadsheet, for use by those who don’t want to take the chance.

In cells a1:d22, I have input the cash flows reflecting the November 1, 2007, purchase of a par bond that pays $5 every six months commencing May 1, 2008, and repays its principal on November 1, 2017. Since all calculations will be performed as of November 1, 2007, I feel perfectly justified in referring to this bond as a ten-year, 10% bond.

The crucial point of the analysis is found in cell B24 – the XIRR function provided by Microsoft. It indicates that the internal rate of this bond is not 10%, as one might expect, but 10.2425%. This is easy enough to understand – for each year, we’re getting half of our quoted 10% six months early and can earn interest on this – but it is often forgotten. And this bond will not be quoted – anywhere – as yielding 10.24%. As an exercise, I suggest that interested readers sell such a bond to their brokerage house “at a price to yield 10.24%” and then invoice them for $100. Let me know what they tell you.

In cells E1:E22, I have discounted each cash flow by time in years at the yearly rate of 10.25% indicated in cell E24. Cell E23 shows the sum of the present values thus calculated, 99.99945, so we may conclude that we understand how the XIRR functions works.

In cells F1:F22, I have discounted each cash flow by period at the period rate of return of 5% indicated in cell F24. Cell F23 shows the sum of the present values thus calculated, 99.99945258, which I’m willing to conclude is a rounding error (particularly since I was lazy, and determined the period number by doubling the time in years, which will be off due to day-count and leap-year approximations. It’s OK for a quant to be lazy, as long as he knows he’s being lazy!). Anyway, this calculation confirms we know how to calculate returns by period.

Cells H1:H26 calculate the Macaulay Duration of the bond according to the “time” cash flows; cells I1:I26 perform this calculation using the “period” cash flows; the results are as equal as we can expect anything in this wicked world to be.

The next four cells to be examined, H28:I29, are a little more complex. The Modified Duration is calculated by the disputed Equation 2 for each calculation method using the indicated value of “y” and setting “f” to either “1” (as my correspondent insists is always the case) or “2” (which is dependent upon the number of coupon periods per year, as explained in the article. We obtain the following results:

Modified Duration by Four Methodologies
  “Time” “Period”
f=1 5.934 5.948
f=2 6.223 6.231

That’s quite the range of differences! It should be clear from the calculations that the “correct” answer is given by “f=1” for the “Time” method and by “f=2” for the “Period” method … but what if I’m wrong?

Cells E31:E53 calculate the present value of the bond according to the “time” method when the Internal rate of return is increased by 1 basis point. Cells F31:F53 calculate the present value when the “Yield to Maturity” (= twice period return) is increased by 1 basis point. The change in price effected by these changes is calculated as PVBP (Price Value of a Basis Point) in cells H53 and I53, respectively.

We find that the Effective Modified Duration (we will refer to the results of this calculation as “Effective” modified duration because the change of 1bp in yield, while small, is not infinitesimal) is 5.93 for the “Time” method, which is equal to the answer calculated in cell H28 using f=1; it is 6.23 for the “Period” method, equal to the answer calculated in cell I29 using f=2.

Thus, we find that Equation (2) of the article is absolutely correct – given the universally accepted definition of yield-to-maturity as being (periods per year) * (period-rate-of-return).

So, we can summarize our characterization of this bond as:

Characterization of Bond
Method Yield Modified
IRR 10.24% 5.93
Street Convention 10.00% 6.23

Which method is right? Who knows? Who cares? What is truth? The street convention is simply that: a convention adopted in order to communicate.

Immediately after posting this update, I will reply to my correspondent and ask for permission to publish his correspondence.

Update, 2007-10-29 The idea “YTM = (coupon period return) * (coupons per year)” is usually expressed formulaicly as “coupon period return = 1 + (YTM / coupons per year)” or “coupon period discounting factor = 1 / [1 + (YTM / coupons per year)]”. See, for example BANK OF ENGLAND FORMULAE FOR CALCULATING GILT PRICES FROM YIELDS

Updated versions of this publication are available from the UK Debt Management Office.

Update, 2007-10-31 I have uploaded a note from the Bank of Canada on calculation conventions; there is also a Department of Finance Web-Page available with the same information.

Update, 2009-2-15: Note that the Modified Duration of a PerpetualDiscount is dependent solely upon its yield.

14 Responses to “Research : Modified Duration”

  1. […] Update, 2007-10-28: This issue has reared its head again with respect to Modified Duration and is discussed in the post Research : Modified Duration. […]

  2. triyogpandya says:

    In my opinion, frequency of coupon in a year has no relavence while arriving m-duration from duration. Because if that is relavent, how will you calculate m-duration for following bond.

    Bond issued at face value of $100 on 1st Jan 2007. Maturity on 31st December 2008. Maturity is on par. For each calender year coupon is payable as follows
    0.5% of face value on 05th day of January
    1.5% of face value on 15th day of May
    2.5% of face value on 25th day of June
    1.0% of face value on 10th day of December

    @ 12% yield-to-maturity Macaulay duration is 1.885151 years. Now in this case how to calculate Modified Duration??

  3. jiHymas says:

    triyogpandya, thanks for joining in!

    The bond you have synthesized as an example is obviously non-conventional; one should not expect the standard conventions to work.

    I’m not sure how you arrived at a 12% yield-to-maturity for this bond; can you show your calculations? Regardless of your calculation method, I would expect to see somewhere around 12% of face value being paid every year to achieve such a rate, and you list payments of 5.5%. Excel calculates an IRR of about 5.66%.

    Remember that Modified Duration is the derivative of Price with respect to Yield. Once we know how to calculate yield – and not before! – we can calculate Modified Duration.

    Added Later: I should point out that this is all math. State your definitions going in (like, ‘What does yield mean?’), work it through. Opinion has nothing to do with it.

  4. triyogpandya says:

    Mr. Hymas, Thank you for the prompt response.

    In my example, i have taken a hypothetical YTM rate without considering coupon paid by the bond, because as far as i understand, YTM should be independent of coupon rate. Coupon is an actual cashflows received by an investor and while YTM (to be considered for M-Duration) is the current market rate which drives the pricing of a bond. So if a market is expecting 12% YTM the bond will be traded at $89.5704 on 1st Jan 2007.

    At 12% YTM the bond value is $89.5704 on 1st Jan 2007.
    Macaulay duration is 1.885151 years
    Modified Duration is 1.885151 / 1.12 = 1.68317

    If market expectation changes and YTM shifts to 11.75%, the bond pricing will increase to $89.9486 on 1st Jan 2007 (calculated taking present value of coupon and maturity value at 11.75%)

    The same can be validated through M-duration calculated above:

    Bond value @ 11.75% = Bond value @ 12% * [1+(0.0025*Modi-Duration)]
    = $89.5704 * [1+(0.0025 * 1.68317)]
    = $89.94734

    The answer is matching upto 2 decimal. The same can be matched precisely by adding the flavor of convexity.

    Convexity of this bond is 4.448314
    The effect of convexity on pricing is
    = [(0.0025^2)/2!]*Bond Value @ 12% * Convexity
    = 0.000003125 * $89.5704 * 4.448314
    = 0.001245

    Value @ 11.75%=[Value@ 12%+Effect of M-Duration] + Effect of convexity
    = $89.94734 + $0.001245
    = $89.9486
    This matches precisely with the price calculated taking present value pf coupon and maturity value @ 11.75%.

  5. jiHymas says:

    OK … the price of $89.5704 was an important piece of missing information.

    I have uploaded calculations in Excel and PDF format. Never mind the top bit for now.

    In cells a19:b30 I have reproduced your calculations. With the cash flows you have stated, Excel’s XIRR function does in fact return the advertised figure of 12% (with six significant figures! I’m impressed!).

    So I am fully prepared to agree that the ANNUALIZED INTERNAL RATE OF RETURN is 12.00% and therefore, as I showed in the main post, agree that there is no divisor for the “yield” term when calculating the Modified Duration from the Macaulay Duration.

    However: we are hung up on the definitions. Annualized Internal Rate of Return, while being a perfectly good number and a fine basis for certain calculations, is not the same thing as “Yield to Maturity”. Yield to Maturity is defined in Canada, Britain, the US (and at least one other English speaking country that I’ll get to shortly) as “n times the coupon period return”, where “n” is the number of coupons paid per year, with all periods being assumed to be equivalent. A coupon period is normally six months, therefore n=2. For preferred shares, a coupon period is normally three months, therefore n=4.

    Thus, if we say that the “coupon period return” is R and n=2, then:

    Internal Rate of Return: IRR = (1+R)^2 – 1
    Yield to Maturity: YTM = 2R

    and therefore: IRR = (1 + 2R + R^2) – 1 = 2R + R^2 = YTM + R^2

    They are not the same thing. Differentiation of the Price = F(Yield) function will give different answers because Yield is defined in different ways – which is the source of all the confusion. When you differentiate the price/yield function using the conventional definition of YTM, out pops the divisor. There is no divisor when using IRR because IRR is annualized and therefore n=1.

    One way to look at it is to say – OK. When we differentiate our F(YTM) function, we’re going to forget about years, we’re going to do it by coupon periods. Then the form of F(YTM) is the same as the form of F(IRR) – it just has more terms. There will be no divisor, because we’re using the coupon-period-return, not the YTM directly, just as F(IRR) uses its single-period return (which for annualized IRR is a year). These calculations will result in an answer that looks exactly the same … but the yield figure for F(YTM) will be Y/n, because THAT is our single period return.

    I promised to give another example of a country that uses this YTM=n*couponPeriodReturn convention. Let’s look at India. I found a description of 8% Indian Savings Bonds at

    They say they pay interest half-yearly, without specifying the precise amount of the payment per 1,000 Rs principal. However, they do specify the compounded value after 6 years: 1,601 Rs.

    In the calculations I have supplied, I have calculated the Excel XIRR return with dates shown in cells A1:A13, periodic payments (assumed to be 4% of principal semi-annually) in cells B1:B13, and the compound payment in cells C1:C13.

    The Internal Rate of Return for the compounded payments is 8.1519% (Cell C15) … NOT 8.00 as advertised by the Government of India! When we check this by taking (Redemption Value / Purchase Price)^(1/years), we get 8.1596% (Cell C16) … the difference is close enough to be due to day-count problems (and perhaps troubles Excel’s XIRR function has with cash flows equal to 0).

    When we calculate the Periodic Rate of Return by (Redemption Value / Purchase Price)^(1 / number of semiannual periods) … we get 3.9998% (Cell C17) … doubling this gives us a YTM (different from IRR!) of 8%, as advertised.

    We can come up with a number of possibilities:

    • The Government of India is lying about the “yield”
    • The Government of India doesn’t know how to calculate “yield”
    • The Government of India uses the same yield calculation conventions as the UK, Canada and the US

    My money’s on the third possibility, but I can’t find a definitive statement of their convention on the website. If anybody can find it, please let me know and I’ll post the link.

    Given that the Government of India uses this yield convention, there will be the funny divisor when converting Macaulay to Modified Duration WHEN YOU WANT TO SHOW THE SENSITIVITY OF PRICE TO YTM. Of course, as I hope is now clear, there is no divisor when you want to show the sensitivity of price to IRR. And always remember: YTM and IRR are not the same thing.

  6. jiHymas says:

    One other interesting thing has occurred to me, and I should mention “bond-equivalent yield”. I have seen various definitions of bond-equivalent yield, but what I mean by it is a yield that is calculated or manipulated in such a way as to make it comparable to the conventional 2-periods-per-annum yields we are used to dealing with.

    Say, for example, triyogpandya’s rather unusual bond was trading in the Canadian universe. As he has claimed and I have verified, the internal rate of return of this bond is 12.00%.

    [This is an inconveniently high number for current purposes. To resolve this difficulty, assume that 2-year corporates are trading to yield 10% to 14%]

    OK, so say we have a NORMAL corporate bond, which is quoted to yield 11.75% according to the convention. We cannot say it is trading 25bp through triyogpandya’s bond, because our bond – like every other bond in the Canadian universe – has its yield calculated according to the Canadian convention, while triyogpandya’s bond has been quoted with IRR.

    No problem! We can convert!

    Internal Rate of Return: IRR = (1+R)^2 – 1
    Yield to Maturity: YTM = 2R

    Given IRR = 0.12, we continue
    (1+R)^2 – 1 = 0.12
    (1+R)^2 = 1.12
    (1+R) = 1.0583
    R = 0.0583
    YTM = 11.66%

    triyogpandya’s bond does not yield 25bp more than our alternative; it yields 9bp less, WHEN YOU COMPARE APPLES TO APPLES (as best as we can). This is, shall we say, important information!

    We should still be careful! When talking about triyogpandya’s bond, we should be precise and talk about an 11.66% bond-equivalent-yield, without getting sloppy and calling it a 11.66% YTM. This will remind us that triyogpandya’s bond is rather special, has unusual cash-flows and will have a somewhat different duration & modified duration from a conventional bond of the same tenor.

  7. jiHymas says:

    And another thing! I may be accused of beating a dead horse here, but this is important and it’s obviously a major source of confusion.

    According to triyogpandya’s calculations above (edited to refer to IRR, not YTM):

    At 12% IRR the bond value is $89.5704 on 1st Jan 2007.
    Macaulay duration is 1.885151 years
    IRR-Modified-Duration is 1.885151 / 1.12 = 1.68317

    If market expectation changes and IRR shifts to 11.75%, the bond pricing will increase to $89.9486 on 1st Jan 2007 (calculated taking present value of coupon and maturity value at IRR 11.75%)

    By repeating the calculation of my last post, we find that an IRR = 11.75% implies Bond-Equivalent-Yield (BEY) of 11.42%

    A change of 11.66% – 11.42% = 24bp in BEY has resulted in a price change of $89.9486 to $89.5704; the price change is 42.2bp.

    This implies the modified duration is 42.2 / 24 = 1.758333. [My significant figures are rather erratic, aren’t they?]

    We know the Macaulay duration : 1.885151 as pre triyogpandya. This, being the PV-weighted average time to cash receipt, shouldn’t change. At least, not much! I’ll have to think about that a little more!

    Therefore, the multiplier to convert Macaulay to Modified(YTM) is 1.758333 / 1.885151 = 0.932728


    The figure (1 / (1+ BEY)) = (1 / (1 + 0.1175)) = 1 / 1.1175 = 0.894855


    The figure (1 / (1+BEY/2) = (1 / (1 + 0.1175/2)) = 1/1.05875 = 0.944510

    is much closer. I believe that if the calculations were to be re-run with a smaller change in yield to eliminate the effects of convexity (readers will recall I changed yield by 1bp in my initial response above), the necessity for division of BEY by 2 would be much more clear.

  8. triyogpandya says:

    Dear Sir,

    You have given me lots of food for thought. I will carefully go through your response over the week-end and will revert back on Monday.

    I am really impressed with your promptness in responding to queries.

    Thank You

  9. triyogpandya says:

    Dear Sir,

    I have studied your response and would like accept slip on my part by considering IRR as equivalent to YTM. I have independently verified the pricing effect on account of IRR-based modified duration and YTM-based modified duration. The results are indeed matching and now I am convinced that if YTM is used for arriving Modified Duration from Macaulay Duration, the use of divisor is necessary.

    However a careful analysis of YTM and IRR and their related modified duration has raised several questions in my mind. I have narrated my thoughts below:

    YTM is sensitive to the frequency of coupon while IRR is always annualized and will not be impacted by frequency of coupon. For example, let us consider three bonds having same IRR but different frequency of coupon, say, 1, 2 and 4 per annum respectively. So if IRR of all three bonds is 10%, the YTM would be 10%, 9.762% and 9.6455% respectively. Due to this it is not possible to calculate YTM based Modi-Duration for a portfolio (consist of different bonds having different frequency of coupons). However it is seemingly easy to derive IRR-based M-duration for the portfolio (by applying value of each bond as weight to their respective Modi-duration). This will facilitate to do impact analysis (stress testing) on a portfolio by assuming a standard shift in IRR and applying the same on portfolio Modi-duration (IRR based). However we will not have such liberty of doing stress testing on a portfolio by assuming a standard shift in YTM, because x% change in YTM for 2-periods-per-annum bond is altogether different from x% change in YTM for 4-periods-per-annum bond. Further if portfolio consist of any zero coupon bond, it would make it more complex to do YTM based stress testing and it is virtually impossible to calculate YTM for zero coupon bonds (unless help of some assumption is taken)

    Limited usage of YTM:

    As I mentioned in our previous trail of discussion, it is not possible to calculate YTM for a bond having uneven coupon frequency. Further YTM curve is virtually useless to calculate convexity. We have to convert YTM into IRR to calculate convexity of a bond and such IRR-based convexity would not help for analyzing impact on account of shift in YTM curve.

    Although convexity has some resemblance with the term complexity, it is surprisingly very easy to calculate convexity of a portfolio (the same can be calculated by taking value of a bond as a weight factor for its respective convexity…provided we are considering IRR and not YTM…seems life is much more easy with IRR then YTM)

    Some surprising result of YTM

    Let us consider following two bonds

    Bond – 1 Bond – 2
    Value $100 $100
    Maturity Value $120 $120
    Period 3 Years 3 Years
    Annual Coupon Frequency 4 2
    Coupon per period $0.01 $0.01

    IRR of bond-1 is 6.304425% while bond-2 is 6.28499%. The result is obvious (as IRR of bond-1 is greater than IRR of bond-2). However let us look at YTM. YTM of bond-1 is 6.160633% and bond-2 is 6.189226%. Here YTM of Bond-1 is less than YTM of bond-2 Inspite of bond-q is giving all the cash flows of bond two plus some more additional cash flows. The reason for the said result is that YTM is giving too much importance to frequency of coupon (irrespective of how insignificance value of coupon is)

    My last defense (for IRR):
    Are we justifying our self by doing an impact analysis (stress testing) on a portfolio (or a balance sheet) by applying standard shift in YTM for YTM-based Modi-duration of the portfolio? (That is what currently many banks and financial institution are doing). As we know, it is incorrect to assume a standard shift in YTM curve for the entire portfolio (or a balance sheet). By doing this we are invariably accepting the presence of arbitrage opportunity, which is unrealistic in today matured markets and hence it is incorrect to assume standard shift in YTM for the entire portfolio (or balance sheet). However we can assume a standard shift in IRR for the entire portfolio (and even for balance sheet) and can do impact analysis (stress testing) by applying IRR-based portfolio Modi-duration and convexity on a shift in IRR.

    Conclusion: YTM based Modi-duration is useful only to do impact analysis for standard plain vanilla bond and that too at individual bond level (and not at portfolio level). IRR based Modi-duration and convexity can be used to do impact analysis of non-conventional bonds, zero coupon bonds, portfolio having combination of such bonds and even for entire balance sheet.

    Inspite of IRR-based Modi-duration is adaptable under all situations, it is very surprising that the same is ignored unanimously by authors of all great books. Even Microsoft Excel formula on Modified duration has no provision for calculating Modi-duration based on IRR. (I will get back to you on limitations of Microsoft Excel M-duration formula very soon).

  10. jiHymas says:

    Triyogpandya – I wish to congratulate you on your intellectual honesty. The first step in improving your investment ability is to get together enough courage to say “I was wrong”.

    Your critique of YTM is very good, but you must remember that it is a convention use for convenience in a relatively homogeneous world, where all bonds are issued at par, will mature at par and will pay a coupon in line with market rates at time of issue.

    The basic problem with the math is that both YTM and IRR presume a flat yield curve that is subject solely to parallel shifts. This implicit assumption makes both of the methodologies highly suspect and – while they both provide good rules of thumb – make them useless for serious quantitative work.

    IRR has its own special problems; when determining portfolio returns, for instance, you cannot determine IRR for the full period by linking two sub-periods. Additionally, in certain situations, IRR will return multiple answers. Assume, for instance, you have the following cash flows in your portfolio:
    12/31/07 : Initiate with $1,000.00
    12/31/08 : Take out $3,300.00
    12/31/09 : Put in $3,627.5
    12/31/10 : Portfolio valued at $1,328.25

    Very strange cash flows, obviously! But now calculate the IRR … annualized returns of 5%, 10% and 15% are each completely accurate!

    This is because IRR is just the roots of a polynomial expression. To get the cash flows required to get such a silly result, I expanded (x – 1.05)*(x-1.1)*(x-1.15)

    Anyway, my point remains the same: the most telling critique of YTM is the reliance on assumptions about the yield curve that don’t make any sense. Since you know that all the assumptions are a little fishy, you must also realize that the answers are going to be a little fishy.

    However we can assume a standard shift in IRR for the entire portfolio (and even for balance sheet) and can do impact analysis (stress testing) by applying IRR-based portfolio Modi-duration and convexity on a shift in IRR.

    I’m not convinced. I will agree that if you have a population of financial instruments that is heterogeneous in terms of interim cash flows, IRR will probably do a better job than YTM. I am dubious as to the actual incremental value of this approach when doing something like Value-at-Risk for an institution with major assets and liabilities all along the curve. For such an analysis, I would greatly prefer to price everything at the base curve and see what happens to prices when you throw things at it.

    For this you need to calculate a zero-coupon curve (so that each time, t, has a specific yield, Y(t), and therefore a specific discounting factor, D(t), instead of saying Y(t) = constant as you do with both YTM and IRR), do a principal component analysis of historical curves, and then throw things at your base curve. This takes an awful lot of computation – but nowadays, computing time is cheap.

    To illustrate my point … 1994. The yield curve went from upward sloping in a relatively straight line, to extremely humped (the 2-10 curve was a LOT steeper than that 10-30 curve). If you had been hedging long 10s with a short 5/30 butterfly, you would have been killed. And a lot of people were.

  11. […] Those who have suffered through endlessly repetitive arguments about the difference between “Annualized Internal Rate of Return” and “Yield to Maturity” in the posts Modified Duration and Yield from On-Line Calculator will be highly relieved to find an authoritative source for the conventions! […]

  12. […] I’ve discussed Yield-to-Maturity until I’m blue in the face … all I will say is that the formula given assumes infinite compounding, which is not how […]

  13. […] The article states: A certain amount of algebra starting from Equation (3) of the article “Modified Duration” in CMS, May 2007 leads to the conclusion that the Macaulay Duration of a perpetual annuity with a yield per period […]

  14. […] discussions may be found in the posts regarding Research: Modified Duration and Research: Yield from on-line […]

Leave a Reply

You must be logged in to post a comment.