Rate of Return for Accumulators


When looking at a specific investment (e.g. asset class or an entire portfolio), we tend to analyze historical returns with the help of the Compound Annualized Growth Rate (CAGR). Although useful, the CAGR only captures the growth of an initial investment left alone for a long period of time. In practice, most investors regularly add to their savings (accumulation phase) or withdraw from their savings (e.g. retirement).

One might think that the CAGR associated with an investment remains a valuable metric for such accumulation/retirement phases, but fact is this metric doesn’t capture the powerful side-effects of the sequences of annual returns, which do become significant when money is added or withdrawn on a regular basis. This article discusses a metric more suitable to the accumulation phase, then compares to metrics used for retirement.

A simple example

Every accumulator is a unique individual and will probably not have the same savings ability over time due to changes in life circumstances. In order to come up with a useful metric, we need to make simplifying assumptions though. Let’s assume that the accumulator starts from zero and saves a fixed amount of money at the beginning of every year, adding to a portfolio of investments.

Say the annual contribution is $10,000, added at the beginning of the year. Say the portfolio return is 10% on year 1. At the end of the year (EoY #1), we have ($0+$10,000) * (1+10%) = $11,000. Say the portfolio return is negative 10% on year 2. At the end of the year (EoY #2), we have ($11,000+$10,000) * (1-10%) = $18,900. Etc. Let’s put a 3-year scenario in a table:

Fixed contribution ==>$10,000
EoYReal ReturnsPortfolio

What is the annualized growth (CAGR) of a sequence of returns (10%; -10%; 10%)? It is 2.88%. Now let’s simply change the sequence of returns to become (-10%; 10%; 10%). The CAGR remains exactly the same. And yet the outcome of our accumulation scenario (final value of the portfolio) is not quite the same.

Fixed contribution ==>$10,000
EoYReal ReturnsPortfolio

Now let’s change the sequence of returns to become (10%; 10%; -10%). The CAGR remains again exactly the same. And yet the outcome of our accumulation scenario is once again quite different.

Fixed contribution ==>$10,000
EoYReal ReturnsPortfolio

In the third case, this turns out to be a pretty lousy investment, the accumulator contributed 3 times $10,000 and ended up with LESS than $30,000. In the second case, this turns out pretty good with nearly $4,000 gained in addition to the contributions.

As this simple example shows, the CAGR metric really doesn’t tell us a lot about the end value of the portfolio which differed by more than $4,000 depending on the exact sequence of returns, possibly ending up with a loss or a gain. And this was over a very short period of time, just 3 years.

A more comprehensive example

Let’s assume the accumulator is a good squirrel, socking away $10,000 every year for 30 years while staying hard at work. Let’s compare two fairly popular asset allocations, say 80% US stocks and 20% US bonds versus 50% US stocks and 50% bonds. This time, we use historical US returns, i.e what really happened.

The math is entirely performed in inflation-adjusted terms as this makes the fixed annual contribution scenario a tad more realistic, plus this allows to end up with more easily comparable numbers. The horizontal axis is the starting year of the 30-years investment period (aka cycle) and the vertical axis is the portfolio value (inflation-adjusted) at the end of the period.

As you can see, depending on the starting year, the outcome varied quite widely. There can be little question that the more stock-heavy accumulator would have fared better (without a single exception, although 1979 was close – due to the two crises in the last decade of the investment period). Now if we take an initial investment (say $150,000) and just let it grow for 30 years, we get the outcome captured by the chart below. Yes, there are some high-level commonalities between the two charts, but most details differ quite significantly. The second chart is a direct function of the annualized growth (CAGR) over a given investment period, while the first chart is clearly different.

Enter the Internal Rate of Return

As we have seen, the CAGR for a given sequence of returns doesn’t tell us enough to assess the actual growth of our (accumulating) savings. It would be really convenient to be able to summarize in one annualized rate what is happening to our accumulator though. What would be the FIXED rate of return that we could apply every year to emulate a given sequence of returns for such an accumulator?

It turns out that this is a simplified form of a well-known problem, how to compute the “Internal Rate of Return” (IRR) of a series of cash flows. And of course, spreadsheets provide a handy function called IRR(). Back to our simple scenarios, we invest for 3 years, then take the money and run far away on an exotic island (or something like that!)… Assuming the sequence of returns is (10%; -10%; 10%), the annual cash flows are ($10,000; $10,000; $10,000; -$31,790). Note the minus sign in front of the final number. If you apply the IRR() function to such cash flows, we get a rate of 2.93%, which is slightly different from the CAGR of 2.88%, although not by much. As you can see in the table below, the portfolio’s end value is exactly equal to what we found before when using such IRR result as a fixed rate of return.

Fixed contribution ==>$10,000
EoYIRR ReturnsPortfolio

When using other sequences of returns, the differences between CAGR and IRR become starker, as shown by the table below. Note that, obviously, the results are independent from the size of the annual contribution.

YearReal ReturnsReal ReturnsReal Returns
CAGR => 2.88%2.88%2.88%
IRR => 2.93%6.37%-0.35%

What is happening here? It is actually very simple math. Take the second sequence of returns (-10%; 10%, 10%). The first $10,000 contribution (year 1) is exposed to those three consecutive annual returns and end up in an ok shape. The second contribution (year 2) is doing great, being exposed to (10%; 10%) consecutive returns. The third contribution (year 3) is doing good too, exposed to the last’s year return (10%). No wonder the aggregate is doing so well overall. In other words, a bear market followed by a bull market is good news for accumulators. While a bull market followed by a bear market isn’t so fortunate.

Comparing asset allocations

Now that we are armed with a handy metric allowing to capture the effective growth of the savings of an accumulator, we can directly compare CAGR and IRR. Let’s compare the same asset allocations, say 80% US stocks and 20% US bonds versus 50% US stocks and 50% bonds. Typical financial literature often makes a big deal of how impactful sequence of returns can be for a retiree, but it is a less well known fact that the impact on accumulators can also be quite significant. Click on the image to see a larger version.

Note how starting in the late 40s or early 50s turned out to be very painful. This is primarily due to the oil crisis in the early 70s (which badly hurt stocks) followed by the inflationary crisis which lasted in the early 80s and badly hurt bonds (in inflation-adjusted terms). In other words, a deep crisis (stocks OR bonds) in the last decade of accumulation is troublesome.

While we are at it, we can also compare CAGR and Max WR (the maximum -fixed- withdrawal rate which would exactly deplete an initial portfolio at the end of the retirement period). Unsurprisingly, the dynamics are pretty much reversed, good starting years for accumulators tend to be poor starting years for retirees.

Let’s run a more systematic comparison now, using asset allocations varying from 100/0 to 20/80, and using as a benchmark of sorts the 50/50 asset allocation.

All three performance/reward metrics (CAGR, IRR, Max. WR) will be analyzed for all investment cycles of 30 years contained in the time period of interest, while varying the starting year (hence 1925-1954, 1926-1955,…, 1990-2019). Consistently with Safe Withdrawal Rate (SWR) typical practice, we will look at the 5% percentile of the results (hence a 95% success rate). This being said, it makes little sense to gate all results by the worst possible outcomes, as opposed to a broader set of possible outcomes. To make the comparison more statistically significant, one could look at a larger subset of starting years by computing a percentile on the various cycles. To do so, we can look at the 50% percentile (the ‘not so good’), the 25% percentile (the ‘bad’) and the 5% percentile (the ‘ugly’) of the collection of cycles. We will do so for CAGR, IRR and Max. WR. And while we’re at it, another retirement metric was included, the Perpetual Withdrawal Rate (aiming at preserving the starting portfolio instead of depleting it). All quantities are inflation-adjusted.

To capture the emotional/risk side of things, standard deviation and maximum drawdowns are classic metrics, spanning the entire time period being studied (1925-2019). Maximum drawdowns certainly illustrate the gut wrenching feeling of investors during a deep crisis, although it only captures a single point back in history, which is unlikely to repeat itself as is. The Ulcer index is a much improved way of tracking both depth and duration of all combined drawdowns during the time period.

The table below presents all those metrics. Click on the image to see a larger version.

Quite clearly, accumulators would have benefited from the highest possible possible exposure to stocks. Unfortunately, this would also have come with the highest emotional toll. The right balance is a very personal decision between financial goals and financial fears.

As to retirees, when looking a bit more broadly than the absolute worst investment periods, contrary to ‘common wisdom’, it might not have been entirely wise to load up on bonds. Again, it is all about finding a proper balance, in this case between emotional distress and sustained purchasing power.

For reference, here is the same type of analysis restricted to more modern times (1950-2019), hence excluding the Great Depression and World War II. The biggest difference was on the emotional side of things, while returns weren’t that different on average.


When studying the historical performance of an investment (asset class or portfolio), the CAGR metric captures the growth of an initial investment, but is NOT a good representation of what would happen to an accumulator contributing to his/her savings on an annual basis. The IRR (Internal Rate of Return) is a much better metric for such accumulation scenarios, accounting for the effects of sequence of returns in the computation. In a way, this is quite similar to the Max. WR (Maximum Withdrawal Rate) and its cousin, the Safe Withdrawal Rate, which applies to retirees. Market returns are one thing, your portfolio returns are another. Both are useful to measure, while requiring an appropriate metric.

The charts used in this article have be produced with the Simba backtesting spreadsheet, an open tool which now includes IRR computation (starting from version 19c).

Addendum (for nerds only!)

Nerdy number crunchers like to find concise mathematical formulas allowing to assemble synthetic charts and tables like the ones used in the main body of this article. For sure, spreadsheet functions like IRR() or XIRR() can be handy for point computations, but they are not necessarily convenient for any context, if only due to the expected entry parameters (e.g. cash flows, including final value of the cumulative investment).

A first observation is that it isn’t difficult to express in mathematical terms the final value of an annual investment of $1 at the beginning of each year, based on (ordered) annual returns, Ri being the annual return for year i. The formula below may look a tad complicated, but it’s actually very simple, just think of the returns compounding an extra $1 invested every year, all added together. Expressing the same final value as a function of a fixed rate of return (i.e. the Internal Rate of Return) is fairly trivial. And then we can use the RATE() spreadsheet formula to solve for IRR.

To obtain the Final Value (FV) in a concise manner, we can proceed in various ways. It turns out that there are some ‘magic’ formulas which can be extremely helpful for this type of computation (both IRR and max.WR/SWR). Here is a seminal post from the Bogleheads forum (post itself derived from the amazing ‘gummy-stuff’ body of work as explained here):

Armed with such Gi logic, the author established in the past that we can easily compute a max withdrawal rate (also known as Sustainable Spending Rate, aka SSR):


Doing a little more algebra, one can then verify the very convenient equation: FV(IRR) = Gn/SSR. Magical! Then it is just a matter of using a RATE() formula to get the Internal Rate of Return of a constant annual contribution. Such approach is now used in the Simba backtesting spreadsheet to keep computations of both Max. WR and IRR concise and efficient.

For the even more mathematically curious, here is a cool equation directly linking CAGR, SSR and IRR: