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|
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|
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, 2009-2-15: Note that the Modified Duration of a PerpetualDiscount is dependent solely upon its yield.