Site icon Early Retirement Now

The Ultimate Guide to Safe Withdrawal Rates – Part 8: Technical Appendix

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)

Last week we published a Google-Sheet that calculates safe withdrawal rates to exactly match a specified real final asset value target. For 1,700+ retirement cohorts (starting between 1871 and 2015)! How do we compute those safe withdrawal rates in practice? I hope we don’t lose half of our subscribers this week but I thought it would be a great idea to show the mathematics behind our calculations. It’s simple arithmetic that we can easily implement in Excel/GoogleSheets and Octave/Matlab. But despite the simplicity, I haven’t seen anyone else use this methodology. Everybody (Trinity Study, cFIREsim, etc.) seems to be using the brute-force simulation technique of iterating portfolio values while applying withdrawals and returns over time. That’s an inefficient approach and we developed a more elegant technique. 

Safe Withdrawal Rate basics

We start with an initial real portfolio value, for simplicity scaled to one, make monthly withdrawals, potentially pay or receive some supplemental cash flows (i.e., consulting income during early retirement, social security and pensions later in retirement, health care expenditures later in life, etc.) and then receive a certain stream of capital market returns over time. Given a withdrawal rate, we can easily calculate the final net worth, simply by iterating forward the portfolio value until the final month. But that’s not how we want to compute it. Recall, we target a certain final asset value and desire to calculate the withdrawal rate to exactly match that final value, not the other way around!

One way to calculate the withdrawal rate would be to guess the withdrawal rate, iterate forward, see by how much we miss the target final value and then adjust the withdrawal rate until we hit the desired target. That would work well if we had to calculate one single safe withdrawal rate. But remember: we want to calculate several million safe withdrawal rates (all combinations of starting dates, equity weights, final asset values, retirement horizon, and other parameters), so the trial and error method or even a Newton-Raphson method seem a little bit cumbersome. There is a more elegant method. Much more elegant!

Deriving SWRs analytically

First, let’s define variable Ct as the total cumulative return of one dollar invested between the beginning of month t and the final period T, which is the end of the retirement horizon, e.g., 720 months in our case, or 360 months in the Trinity Study. Think of this as an opportunity cost factors, the loss of each dollar of a withdrawal in period t measured in period T dollars. If the (real, inflation-adjusted) capital market returns are r, then we can calculate this as:

So, the Ct are simply the cumulative capital market returns, but moving backward rather than forward. Also, note that C1 is the cumulative return of the initial principal if held over the entire retirement horizon. In other words,

We can now calculate the final asset value of a portfolio with an initial value of one and withdrawals w every month as:

The first term on the right side is how much the portfolio would have grown in the absence of any withdrawals, and the second term is the total opportunity cost of all withdrawals translated into date T dollars. Notice that even the final month’s withdrawal is subjected to a return rT because the withdrawal comes out at the beginning of the month while the final asset value is marked at the end of the final month.

Now we can easily solve for the withdrawal rate w that generates the final value target as

Additional Cash Flows (Social Security, Pensions, Expenses, etc.)

We can also easily expand this analysis to include any sequence of additional cash flows independent of the investment portfolio, p, to account for pensions (p>0) or even costs in retirement (e.g., kids’ college costs, higher health care costs when old, etc.) that need to be funded over and on top of the baseline withdrawals (p<0). Translating those additional flows into date T dollars requires multiplying each by its opportunity cost factor and summing up. Hence,

And thus,

Notice how all three terms in the safe withdrawal rate are simply additive. Computationally, this is very easy to handle. For example, for any given retirement start date, horizon, and equity weight, we have to calculate the terms involving C only once and simply read off the sustainable withdrawal rates for different values of FV with very little computational burden.

Time-varying withdrawal rates

One additional complication we can model is to assume that the withdrawals have a specified scaling/shape over time, i.e.,

and subsequent scaling factors

can take any desired shape, e.g., an exponential increase over time (to model COLA=Cost-of-Living Adjustment above the CPI), or an exponential decay (COLA less than CPI), or any other shape over the retirement horizon. For example, constant for the first 30 years (in real terms) and then declining to account for less consumption demand when older. The SWR calculation is still really simple:

Why our methodology is more elegant than cFIREsim’s iterative methodology

Update (2/1/2017)

There are obviously others who have already used a similar technique to ours, i.e., computing safe withdrawal rates to hit a specific target:

But we still have the two innovations that I haven’t seen anywhere else:

Thanks for stopping by today! Please leave your comments and suggestions below! Also, make sure you check out the other parts of the series, see here for a guide to the different parts so far!

Exit mobile version