Rate of Return a la Newton a continuation of Part I

If you just want to calculate an Annualized return (without all the bumpf which follows), go here

Suppose we invest $1,000 each year, for five years, and our portfolio is now worth $6,523.33 (the last $1K investment having been made one year ago).

We're making investments of A1, A2, A3, ... AN for time periods (in years*) of T1, T2, T3, ... TN and our current portolio is $P.
* If the times were in MONTHS, then we'd get the MONTHLY return instead of the ANNUALized return.

The annualized return, R, must satisfy:

(1)       f(R) = A1(1+R)T1 + A2(1+R)T2 + A3(1+R)T3 + ... + AN(1+R)TN - P = 0

We have a linear approximation for R, namely:

  RLinear = { P - Σ An} / ΣAnTn

which is the solution to the Linear equation: fL(R) = Σ An + { ΣAnTn } R - P = 0

We also have a Quadratic approximation ... explained in Part I. We'll ignore it - for now.

A notation such as Σ un is shorthand for u1+u2+u3+ ... +uN.

We consider a particular problem where our current portfolio is P = $2020, and
n
An
Tn
1$6K4 years
2-$3K3 years
3$1K2 years
4-$1K1 year
5$2K1/2 year
The pertinent graphs are shown in Fig. 1

Fig. 1
namely:

f(R) = 6000(1+R)4 - 3000(1+R)3 + 1000(1+R)2 - 1000(1+R) + 2000(1+R)0.5 - 2020    >= 0 at RE = -0.275
fL(R) = 6000(1+4R) - 3000(1+3R) + 1000(1+2R) - 1000(1+R) + 2000(1+0.5R) - 2020
= 2980 + 17000R    >= 0 at RL = -0.175
fQ(R) = 6000(1+4R+6R2) - 3000(1+3R+3R2) + 1000(1+2R+R2) - 1000(1+R) + 2000(1+0.5R-0.125R2) - 2020
= 2980 + 17000R + 27480R2    >is NEVER 0 !!

The Exact annualized return is RE = -0.275 (or -27.5%) ... which can be verified by substituting this R-value into f(R) and getting
f(-0.275) = $0   although, to get $0 to within 2-bits, you'll have to subtitute the more precise value of R=-0.2747 :)

And, alas, the green quadratic fails to provide an estimate


Here we'll use the Linear approximation to get a better approximation.
First, we construct a tangent line to the f(R) curve at the point where
R = the Linear approximation, namely RL = -0.175 (or -17.5%).

That means:

  • Move vertically from RL to the blue f(R) curve.
  • Move along the tangent line until you get to the horizontal R-axis.
  • Adopt this R-value (where the tangent line cuts the horizontal axis) as an IMPROVED approximation ... which we'll call R1.
In fact, for our example, this improved R-value is -0.257 or -25.7%

Fig. 2

Fig. 2a
>That's pretty good! The exact value is -27.5% so ...

Wait. We're not finished. We can repeat this procedure, moving along the tangent line starting at this IMPROVED approximation (namely R1) and that'll give us an even BETTER approximation (which we'll call R2), so we can start from there and construct yet another tangent line and move to where it cuts the horizontal axis yielding and even BETTER, BETTER approximation (which we'll call R3) so we can repeat with this BETTER, BETTER ...

>I get it! I get it! So when do you get to the exact value, RE?

We won't actually get to the exact value - but as close as we like - to a dozen decimal places, a hundred digits, whatever.
Note, too, that we'll call RL = R0 for sanitary reasons.

>And for our example? What are the values of ...?
Here they are:      R0 = -0.17500    R1 = -0.25709    R2 = -0.27403    R3 = -0.27467    R4 = -0.27467   
and from there on, you get the same five digits, so we conclude that the exact annualized return is, to five digits, -0.27467
(or -27.467%) although we could get more decimals if we wanted. Do you want more decimals?

>Definitely not - but do I have to do all this graphically? Do I draw tangent lines and ...?
Definitely not. As you might expect, there's a magic formula.

To get the magic formula, we first rewrite Eq. 1, replacing (1+R) by x, getting:

(2)       F(x) = A1xT1 + A2xT2 + A3xT3 + ... + ANxTN - P = ΣAnxTn - P

and we wish to determine the value of x which makes F(x) = 0.
If we let (1+R0)=x0, (1+R1)=x1, (1+R2)=x2, etc., then the prescription for computing the various approximations is:

x1 = x0 - F(x0)/F'(x0) = x0 - { ΣAnx0Tn - P }/{ΣAnTnx0Tn-1}
x2 = x1 - F(x1)/F'(x1) = x1 - { ΣAnx1Tn - P }/{ΣAnTnx1Tn-1}
x3 = x2 - F(x2)/F'(x2) = x2 - { ΣAnx2Tn - P }/{ΣAnTnx2Tn-1}

   etc. etc.

If we carry five digits and our approximations don't hardly change after, say, "k" iterations, then we stop and get our annualized return as RE = xk - 1.

>The formulas got F'(x0) and F'(x1) and ...
Them's derivatives. Don't worry about 'em.
>Mamma mia! Did you figure all this out?
Well ... uh, it was actually Sir Isaac Newton.
>The guy who took a blow from the falling apple?
Yeah, that's him.
>That's he.

The method is called Newton's Method and we'll call the various approximations x1, x2, etc. Newton Iterations. Fortunately we have a .ZIPd spreadsheet to do all this. We just enter the CASH FLOWS A1, A2, etc. and the DATEs when they occurred - the spreadsheet computes the time periods in YEARS: T1, T2, etc. - and, finally, we type in the current value of the portfolio, $P.

Here's an example with CASH FLOWS and DATEs; it looks like so:

to download the .ZIPd spreadsheet


>Doesn't Excel already have a command to do all this?
Yes, the XIRR command. It goes like this:

=XIRR(A1:A50,B1:B50,0.10)

where the range A1:A50 contains the cash flows and the range B1:B50 contains the dates and ...
>And 0.10 is the initial guess, right?
Right. Here's an example
where you stick in the cash flows (negative if they're withdrawals) and the dates and end up with the current portfolio value (entered as a negative number, like -$44.100) and today's date.

I think Excel does exactly what Newton does; continues to improve upon your initial guess, reducing the value of

f(R) = A1(1+R)T1 + A2(1+R)T2 + A3(1+R)T3 + ... + AN(1+R)TN - P

until it's zero ... or close enough ... to within 0.000001 percent.

>Then why are you describing what Newton does? Why not just use XIRR?
That's so you understand what's going on. Aren't you interested?

>Not really.

Besides, XIRR may not be able to find an annualized return and you should know why. For example, if your investments are very volatile ...

>Like investing in dot.coms?

Exactly. Suppose, for example, you invest $10K and one year later withdraw $10K and a year later withdraw another $10K then, a year later, invest $10K and, a year later you find that your portfolio is worth just $1K, then there are three possible annualized returns.

>How's that again??
It goes like this:
TimeAmount
4 years ago$10,000
3 years ago-$10,000
2 years ago-$10,000
1 year ago$10,000
Now$1,000
The pertinent equation is:

f(R) = 10,000(1+R)4 - 10,000(1+R)3 - 10,000(1+R)2 + 10,000(1+R) - 1,000 = 0

where R is the annualized rate of Return
... and there are three-count-'em-three solutions, **
namely -88.56% and -28.58% and +19.52% and ...

>Picture?

**
 
  It's a quartic so it's got four-count-'em-four solutions  
  ...as pointed out by R.R.R.
   
Okay, here's a picture of f(R):
It's plotted against R, although (for sanitary reasons) we've called the variable x which is just 1 + R.

>Which one does Newton give?
It depends upon your initial guess. If it's close to one of the three solutions, it'll give that particular solution. XIRR has a hard time finding the -28.58% solution, perhaps because the value of f(R) actually decreases as the Rate of Return increases.
Note that we can't use the Linear Approximation as our initial guess:
RLinear = { P - Σ An} / ΣAnTn = { 1000 - 0} / 0 = #DIV/0! because the sum of cash flows Σ An and the time-weighted sum ΣAnTn are both zero.

>Which annualized return is correct?
They're all correct ... and that's a problem with the concept of annualized return, albeit a minor problem. Remember, the annualized return is some constant annual return which would give the same final portfolio value. It need not be unique.

>But -88.56%? That'd give a negative portfolio after one year and ...
After you withdrew the first $10K? Yes, so on logical grounds it'd be rejected.



Fig. 5a

Fig. 5b

>Are those numbers, I mean +$10K and - $10K and so on, are they reasonable??
Sure, but whatever we're investing in, it has phenomenal growth for a couple of years then a dramatic decrease ...

>I invested in one of those stocks recently. It was called ...
Pay attention. The chart at the left gives the portfolio value after each year ... and the returns for years 1, 2, 3 and 4. They're 50% then 150% then 0% then
-92% and we end up with just our final $1K after the +$10K, -$10K, -$10K, +$10K cash flows.

>So Newton always gives an answer, right?
Well ... uh ... not always. It depends upon that first guess:

>I take it all these numbers are your inventions? I mean, they're not actual ...
Yeah, that's true, but here's another example:

We invest $100 each month, for ten years (Jan 1/90 to Dec 31/99), in the S&P 500. Our portfolio grows to P = $31,077.26 ... like so

The annualized gain for the S&P, over this ten-year period, was 15.5% but we've been investing $100/month so didn't have much invested in those earlier years when the S&P wasn't growing dramatically, but in the later years ... aaah ...
>So our annualized is better, right?
Right, and we'll get that using Newton's Method, like so:


Fig. 4
We have $100 invested each month for 120 months, so A1=100, A2=100, etc. and we take T1=120, T2=119, etc.
where ... uh ... we're going to find the MONTHLY, not the ANNUALIZED, gain so our time periods are in MONTHS..

>What's the MONTHLY version of ANNUALIZED? Is it MONTHLY-IZED or maybe ...
Pay attention. We need to compute:

  • ΣAn = 100 + 100 + ... + 100 = 120*100 = 12,000
  • ΣAnTn = 100(120) + 100(119) + ... + 100(1) = 100 (120+119+118+...+2+1) = 100(120)(121)/2 = 726,000
    using a magic formula: 1+2+3+...+n = n(n+1) / 2
  • RLinear = { P - Σ An} / ΣAnTn = (31,077.26 - 12,000)/726,000 = 0.02628 or 2.628% MONTHLY.
    which makes an ANNUALIZED return of 1.0262812 - 1 = 0.365 or 36.5% and that's our Linear Approximation - to begin our Newton Iterations.
  • From Eq. 2 we get: F(x) = A1xT1 + A2xT2 + A3xT3 + ... + ANxTN - P = 100(x120+x119+ ... +x2+x) - 31,077.26
    which makes exactly 120 monthly contributions, the last $100 being invested for a single month.
  • Use another magic formula, namely: x120+x119+ ... +x2+x = x(x120-1)/(x-1) so
    F(x) = 100x(x120-1)/(x-1) - 31,077.26
  • Further:
    F'(x) = d/dx{ 100(x120+x119+ ... +x2+x) - 31,077.26} = 100(120x119+119x118+ ... +2x+1)
    and there's a magic formula for this - but you won't like it.
  • Finally, our Newton Iteration formulas are:
    xn+1 = xn - F(xn)/F'(xn) with n = 0, 1, 2, ...
Starting with x0 = 1.02628 (the Linear Approximation) we get the MONTHLY return iterates:

x0 = 1.02628    x1 = 1.01890    x2 = 1.01491    x3 = 1.01400    x4 = 1.01400    x5 = 1.01400    etc. etc.

The corresponding ANNUALIZED return is then: 1.0140012 - 1 = 0.181 or 18.1%

>Dollar Cost Averaging works, right? We got a larger return than the 15.5% annualized S&P return, right?
In this case ... yes, because 1995 thru' 1999 were great years and we saved our dollars for that period. Had the earlier years had greater returns, we would have wanted to invest as much as possible as early as possible.

For example, here's our portfolio if the monthly S&P returns occurred in the reverse order, with the Dec/99 return first, Nov/99 second ... and the Jan/90 last. With the better five years coming first, the annualized return is now only 13.6%, for our investments.


Fig. 5
>And the S&P500? What about its ...?
The annualized return for the S&P500 would remain the same, 15.5%, since we'd multiply the monthly gain factors in the reverse order, but get the same final value for the product.


Fig. 6
>How about a picture.

Here are the three curves: f(R), fQ(R) and fL(R) which we considered earlier
(but now, for our $100/month investments).

The places where each crosses the horizontal R-axis are:

18.1% (Exact)     that's the RED dot
21.1% (Quadratic Approximation)
36.5% (Linear Approximation).

>You keep switching from x to R and MONTHLY to ANNUALIZED and decimal fractions to percentages. I hate that!
Sorry. Just remember that we were first working on the MONTHLY returns (because our investments were monthly), and we put
x=1+R for convenience, then, finally, switched to ANNUALIZED - that's 12-months worth of MONTHLY returns - so we use
(1+Rmonthly)12=1+Rannual    or    (xmonthly)12=xannual     to switch back and forth

... and, of course, we multiply by 100 anytime we want a percentage. Got it?

>ZZZZZzzzz

for Part III.