The Ultimate Guide to Safe Withdrawal Rates – Part 7: A Google Sheets Toolbox

Update: We posted the results from parts 1 through 8 as a Social Science Research Network (SSRN) working paper in pdf format:

Safe Withdrawal Rates: A Guide for Early Retirees (SSRN WP#2920322)

One commenter the other day had a good suggestion: Publish the Excel spreadsheet that we use in our safe withdrawal rate research. Great idea! There is only one problem: we didn’t use Excel to calculate any of the SWRs. We did use Excel to create some tables, but the computation and most charts were all done using GNU Octave, a free number-crunching programming language, similar to Matlab.

But we still liked the idea of creating a tool to run some quick SWR calculations. In Octave, we can calculate a large number of simulations and calculate safe withdrawal rates over a wide range of parameter value assumptions. Millions and millions of SWRs over many different combinations of parameter values (retirement horizons, final asset value target, equity shares, other withdrawal assumptions). That would have been cumbersome, probably even impossible to implement in Excel. But a quick snapshot on how one single set of SWR parameters would have performed over time? That’s actually quite easy to do, even though there are 1,700+ different retirement cohorts between 1871 and 2015.

Here’s the Google Sheet Link:

Link to the EarlyRetirementNow SWR Toolbox v1.0

For obvious reasons, the baseline Google Sheet can only be edited by us. If you like to run your own calculations you have to download your own copy. There are at least two ways to do so:

  1. (recommended) Click on Menu, then “Make a Copy” or “Add to MyDrive” to get a local copy of the spreadsheet in your own GoogleDrive. You can then edit the sheet and use your own assumptions.
  2. Click on Menu, then “Download as” then “Microsoft Excel (.xlsx)” to get a copy as an Excel file to store on your own hard drive. It’s not really recommended because most of the formatting will get lost. But if you care only about the computations you should be fine.

Update February/March 2017: Gold and cash returns. And Fama-French style factors

  • Gold returns are only completely trustworthy after 1968 when I got the London Fixing time series via Quandl. Before that, I had to rely on annual data from OnlyGold.com. If someone has a better (monthly) time series for 1871-1967 please let me know!
  • For cash returns I use:
    • 3-month T-bill interest rates from the Federal Reserve starting in 1934. Monthly data.
    • I have annual data going back to 1928 from NYU-Stern. Data gathered via Quandl.
    • For 1871-1927 I use annual data on 1-year T-bill yields from Prof. Rober Shiller. It’s not exactly ideal to splice it this way but it’s the best I can right now. If someone has better data, please let me know!
  • I added the Fama-French styles for “Value” and “Small” stocks. How to use this: Imagine you have an 80% allocation to equities, here modeled as S&P500 stocks, but in your actual portfolio a quarter of your equity allocation is in value stocks (e.g. Vanguard ETF with ticker VTV), you can model the portfolio by setting this the Fama-French “Value Stocks” parameter to 20% (=80% times 0.25). Don’t reduce the equity portfolio parameter to 60%, keep that at 80%. The Fama-French parameters are merely add-on factors. Same with small stocks. Imagine you have 80% in equities and one tenth of that in small-cap stocks. Set the Fama-French parameter for “Small Stocks” to 8%, while keeping the equity parameter at 80%.

A word of caution about the Fama-French factors: Just because a value and/or small company tilt might have outperformed in the past doesn’t mean that this will last forever. I added the Fama-French style factors out of curiosity and because someone asked, but don’t rely too religiously on this!

How our tool is different from cFIREsim

  • We use monthly data, while cFIREsim uses only annual data.
  • We project forward return forecasts beyond 2016 year-end so we can calculate SWR for more starting dates. For example, the January 2000 cohort is already far underwater, as we showed a case study last week. Even aggressive return assumptions will still wipe out the portfolio before too long and we like to count those cohorts as 4% SWR failures even before the utter failure is actually confirmed.
  • cFIREsim asks you for a specific withdrawal rate and then simulates how that rate would have performed over time for each of the different starting dates. We go the opposite route: We specify a final value target and our spreadsheet calculates the exact initial withdrawal rate that would have precisely matched the final value target. For every retirement cohort between February 1871 and December 2015 (=1,739 months). The advantage of this procedure is that we can then easily calculate the failure rates of different initial SWR without calculating any new simulations. The failure rate of the 4% rate? Simply calculate the share of ERN-SWRs that are greater than 4%. And redo the same for all rates between 3.00% and 5.00% without ever calculating any new set of simulations as would have been required in cFIREsim.

Enter Parameters

Fields with the orange shading are asking for user inputs:

  1. The Equity share. We are aggressive and set this to 90%. The residual is invested in 10-year U.S. Treasury Benchmark Bonds.
  2. The expense ratio: We currently set it to 0.05% p.a. One-twelfth of this is subtracted from each month’s return.
  3. Equity projected returns post 12/31/2016. These are real annualized return assumptions. In our SWR simulations we set this to 6.6% but here we are a bit more cautious and set this to a more conservative 5.0%.
  4. Bond returns: for the near-term (notice how low current 10Y yields are) and then longer-term. Short-term we use only 0.5% over the next ten years, then going a bit higher to 2.0% real return after that.
  5. Same for Cash: We expect pretty low cash returns over the next 10 years (0% real) and then a bit of a bump after that (+1% real).
  6. Expected future real return for Gold: We set this to +1%. Historically, gold has returned only about 1.5% p.a. after inflation.
  7. The length of the retirement horizon in months (e.g. 60 years = 720 months)
  8. The target final asset value as % of the initial portfolio. We set this to 50%.
swr-part7-chart1_v2
Simulation parameters, Part 1.

Below the main parameters, you can also set an entire time series of additional cash flow needs (all monthly numbers as % of the initial portfolio value). For example, we predict to get a pension and Social Security worth about 1% of the initial net worth (in 2018 dollars) 25 years into retirement. So, starting in month 301 we set this value to 1%/12=0.0833%.

swr-part7-chart2
Simulation parameters, part 2: Account for additional cash flows, e.g. pensions and Social Security (>0) or additional costs like college expenses, healthcare (<0).

That’s all you need. The computer does the rest for you. It calculates the safe withdrawal rates for each month starting in February 1871 to December 2015 that would have exactly matched the final value targeting the last month of the retirement horizon.

Results

Some summary tables are in the first tab “Parameters & Main Results.” Be patient, depending on the internet connection and computer speed it may take a few seconds to recompute all results!

In the table on the left, we calculate the failsafe safe withdrawal rate both over the entire sample and for retirement cohorts post-1950 as well as the 1st, 5th, and 10th percentile. For example, since 1950, a 3.61% withdrawal rate would have failed 5% of the time and succeeded 95% of the time.

On the right, we calculate the failure probabilities of specific rates between 3% and 5% in 0.25% steps, again over the entire sample and since 1950, but also in the three CAPE regimes (<20, 20 to 30 and 30+). In the CAPE 20-30 regime, notice the big jump in the failure rates once you go beyond 3.5%!

swr-part7-chart3
SWR summary Tables: SWR distribution by percentile (left) and failure probabilities of different initial withdrawal rates for different time periods and CAPE regimes (right).

We also throw in a chart with the data in the right table:

swr-part7-chart4
Failure rates of different Withdrawal Rates.

Distribution of the final portfolio value

In the tab “Distribution of Final Value” we can also specify a withdrawal rate and see the distribution of final asset values (real, CPI-adjusted, as multiples of initial). In the example below, we use the 4% rule. We are mostly worried about the left side of the distribution, so final values between the minimum and median. Note how for the median retirement cohort the investor would have grown the portfolio to 8 times (!) its initial real value. The maximum final value would have been a staggering 62-times the initial value. But at the same time, almost 10% of the retirement cohorts ran out of money!

swr-part7-chart8

More results

Also make sure you check out the tab “SWR time series,” which includes the SWR for all 1,700+ months in the simulation. For a quick look, there’s a time series chart as well. Notice how there are quite a few times when the SWR is quite substantially below 4%!

swr-part7-chart5
SWR time series (1871-2015)

How the hell do we calculate so many SWRs?

Or, in other words, where’s the mega-spreadsheet that has 1,700 rows and 720 columns to iterate over the 60 years worth of portfolio values for the 1,700+ cohorts? We don’t need any of that! The withdrawal rate arithmetic is much easier than that. Stay tuned for next week’s post: our technical appendix with some of the background on the withdrawal rate arithmetic we developed. But if you’re interested, check out how the SWR tab “SWR time series” in Column E are calculated through some pretty trivial calculations from just four auxiliary variables in the tab “Stock/Bond Returns,” columns L through O. Likewise, we calculate the final asset values for the fixed withdrawal rate (column F in that same tab) without ever iterating over 720 months of returns each time we change the withdrawal rate. Much more elegant than the brute-force method in cFIREsim!

Case Study:

As we just mentioned, in calculating the SWR we never even go through the cFIREsim-style exercise of iterating over months and years and plotting the portfolio value time series. That would be too cumbersome for all 1,739 retirement cohorts and several decades of retirement horizon. But if you were wondering how any particular withdrawal rate would have performed over time for one specific retirement cohort, here’s the way to do it. Check out the tab “Case Study” where we can add the parameter values, again the orange shaded fields: The retirement start date (year/month), initial portfolio value and the withdrawal rate. And the computer does the rest!

swr-part7-chart6
Case Study Parameters.

The time series of portfolio values is in column D and also in the time series chart. This will use the same portfolio allocation and also the same supplemental income/expenses as in the main parameter tab. As we already noted last week, January 2000 would have been a pretty bad starting date for retirees. Not just early retirees!

swr-part7-chart7
End of the month real portfolio value. The first 204 months are actual return data, expected return data after that.

Disclaimers

Please read the disclaimers here on the website and in the Google Sheet. We gladly grant the right for others to utilize our work but please make sure to credit us and quote us properly. We do own the copyright to everything we post here!

Also, note what this toolkit is and what it isn’t: It is a toolkit to determine how different withdrawal strategies would have performed in the past. It’s not a forecast. Past results are no guarantee of future results! But we can still learn from the past.

We hope you enjoyed this week’s post. Please leave your comments and suggestions below! We are on the road this week for the annual ERN family ski vacation and might be slow to respond but we will reply to everybody eventually!

Advertisements

92 thoughts on “The Ultimate Guide to Safe Withdrawal Rates – Part 7: A Google Sheets Toolbox

  1. I’ve been exploring this spreadsheet – thanks for creating and sharing it! I’m particularly fascinated by the opposing nature of savers and retirees as it relates to Sequence of Returns Risk. What if I can be a saver during the first phase of early retirement through austere budgeting? It seems that we can explore this scenario by choosing a target portfolio value at >100% of the original. But there are a few aspects of your SWR Toolbox I’m not sure about that I hope you could clarify.

    1) You describe the tab “Distribution of Final Value” as showing real dollars. In the main tab “Parameters & Main Results” is the ‘Final Value Target (% of Initial)’ in real or nominal dollars? I want to preserve 100% of my purchasing power after 60 years, not 100% of my nominal value.

    2) As the portfolio grows faster through reinvestment of funds in excess of income & inflation, the safe yearly income will be higher than a portfolio that only grows to satisfy income & inflation. However many SWR studies choose the WR as a percentage of the original portfolio value, which is then adjusted for inflation over time but not adjusted for a growing portfolio. For a 100% asset preservation target, this seems fine — the portfolio only needs to grow to keep up with inflation. Does the math behind the SWR Toolbox allow for computing an additional growth factor separate from inflation that represents income growth through reinvestment? It seems that this would amount to a variable WR that grows relative to the original portfolio value over time, as opposed to WRs that vary with portfolio value at a fixed moment in time.

    3) I’ve extended the spreadsheet with a coarse calculation for the yearly raise in income one would receive when the final target value is greater than 100%. This helps me explore just how low a WR I must commit to if I want a retirement income that increases faster than inflation. For a 2% yearly raise above inflation (growing to 328% of the original portfolio value after 60 years) it seems the SWR is quite low (1.6% for 0% failure). However this is a simple yearly compounding that doesn’t take into account sequence risk (or sequence benefit, in the case of a saver). It seems that another way to approach this is to provide numbers for Supplemental Income that represents the additional yearly savings due to austere budgeting. However this would be much more compelling if it were computed based on historical values like the rest of the SWR toolbox. For some retirement cohorts, the returns in early retirement are so poor that even low SWRs require spending capital instead of growing the portfolio; yet these are exactly the cases where being a saver (choosing an excessively conservative SWR) does best for the portfolio. Budgeting for an income that is a few basis points below the SWR during the first decade of early retirement should lead to a much better SWR later on. I’m curious what this dynamic looks like. Specifically I’m envisioning a scatterplot with one axis showing the basis point reduction (or increase) over the SWR for the first X years, and the other axis showing the basis point increase (or reduction) over the SWR for the remaining time. Ideally there won’t be a simple linear regression fit, due to compounding.

    I’ve read your entire blog (not just the SWR series), so at this point I suppose I’m just pressing you for more material 🙂 Thanks for all that you’ve done, and I look forward to your future posts!

    Liked by 1 person

    • From this comment:

      I’ve been exploring this spreadsheet – thanks for creating and sharing it! > I’m particularly fascinated by the opposing nature of savers and retirees > as it relates to Sequence of Returns Risk. What if I can be a saver during > the first phase of early retirement through austere budgeting? It seems > that we can explore this scenario by choosing a target portfolio value at > >100% of the original. But there are a few aspects of your SWR Toolbox I’m > not sure about that I hope you could clarify. > > 1) You describe the tab “Distribution of Final Value” as showing real > dollars. In the main tab “Parameters & Main Results” is the ‘Final Value > Target (% of Initial)’ in real or nominal dollars? I want to preserve 100% > of my purchasing power after 60 years, not 100% of my nominal value. > > 2) As the portfolio grows faster through reinvestment of funds in excess > of income & inflation, the safe yearly income will be higher than a > portfolio that only grows to satisfy income & inflation. However many SWR > studies choose the WR as a percentage of the original portfolio value, > which is then adjusted for inflation over time but not adjusted for a > growing portfolio. For a 100% asset preservation target, this seems fine — > the portfolio only needs to grow to keep up with inflation. Does the math > behind the SWR Toolbox allow for computing an additional growth factor > separate from inflation that represents income growth through reinvestment? > It seems that this would amount to a variable WR that grows relative to the > original portfolio value over time, as opposed to WRs that vary with > portfolio value at a fixed moment in time. > > 3) I’ve extended the spreadsheet with a coarse calculation for the yearly > raise in income one would receive when the final target value is greater > than 100%. This helps me explore just how low a WR I must commit to if I > want a retirement income that increases faster than inflation. For a 2% > yearly raise above inflation (growing to 328% of the original portfolio > value after 60 years) it seems the SWR is quite low (1.6% for 0% failure). > However this is a simple yearly compounding that doesn’t take into account > sequence risk (or sequence benefit, in the case of a saver). It seems that > another way to approach this is to provide numbers for Supplemental Income > that represents the additional yearly savings due to austere budgeting. > However this would be much more compelling if it were computed based on > historical values like the rest of the SWR toolbox. For some retirement > cohorts, the returns in early retirement are so poor that even low SWRs > require spending capital instead of growing the portfolio; yet these are > exactly the cases where being a saver (choosing an excessively conservative > SWR) does best for the portfolio. Budgeting for an income that is a few > basis points below the SWR during the first decade of early retirement > should lead to a much better SWR later on. I’m curious what this dynamic > looks like. Specifically I’m envisioning a scatterplot with one axis > showing the basis point reduction (or increase) over the SWR for the first > X years, and the other axis showing the basis point increase (or reduction) > over the SWR for the remaining time. Ideally there won’t be a simple linear > regression fit, due to compounding. > > I’ve read your entire blog (not just the SWR series), so at this point I > suppose I’m just pressing you for more material 🙂 Thanks for all that > you’ve done, and I look forward to your future posts! >

      Like

    • I performed some coarse calculations to examine the effects of a WR that is lower than the SWR, which leads to surpluses that are reinvested to grow the portfolio faster than inflation. Comparing this Austere Withdrawal Rate to the SWR over time shows that the yearly income generated by the AWR eventually surpasses the SWR, and this can take a long time (>10 years) for the tail case. However, here’s a big gap in the Final Portfolio Value between the tail case (safe 0 percentile) and even the 5% level. Since I’m exploring the possible upside from a low WR early on, I’m willing to take a look past the lowest “safe” upside amount. At the 5 percentile it takes a fraction of the time for the AWR income to surpass the SWR income. When comparing an SWR of 2.68% (for FV = 100% of original) to an AWR of 2.44% (nearly 0.25% difference), the tail case takes 14 years for AWR income to win, compared to less than 5 years for the 5 percentile.

      My results are visualized here: https://public.tableau.com/profile/datanerd#!/vizhome/SWRvsAWR/YearsuntilAWRpayoff

      Liked by 1 person

    • Thanks!
      1: all numbers are always in real, CPI-adjusted terms.
      2,3: I have done some calculations for changing the withdrawals by less than inflation, see SWR part 5. This feature is not in the SWR Google Sheet, though.
      But there is a relatively simple rule of thumb: If you increase the withdrawals by x% over and above inflation you’d have to decrease the SWR by about that same number.
      For more on the math, see SWR series part 8 under “Time-varying withdrawal rates”!

      Like

      • Looking at part 5, I note that the WR changes to provide for different levels of consumption. I’m instead exploring a fixed WR at a level lower than the SWR, in order to fuel increasing consumption by way of portfolio growth through reinvestment. My WR could remain lower than the SWR perpetually, and eventually my smaller consumption of a larger portfolio would outpace the larger SWR consumed from a smaller portfolio. I’ve been digging in to determine if the payoff happens quickly enough to be worth considering, given the up-front lifestyle commitment it would require.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s