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,
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
- We are interested in the failure probabilities of different withdrawal rates (say, all values from 3% to 5% in 0.25% steps). cFIREsim would have to calculate a whole new set of simulations with time series of portfolios for each alternative withdrawal rate. We compute one single safe withdrawal rate for each retirement cohort and then simply read off the percentage of our SWR values that were above or below a certain target level.
- cFIREsim has the advantage that it calculates the entire time series of portfolio values. But if you’re only interested in the final portfolio value then it’s very easy to generate that distribution for alternative withdrawal rates without any new simulations. Simply construct the time series of final asset values by plugging in a specific w into one of the “FV=…” formulas above. And again we can do this for different values of w without ever going through the iterative process!
There are obviously others who have already used a similar technique to ours, i.e., computing safe withdrawal rates to hit a specific target:
- For fixed returns, of course, Excel’s “pmt” function calculates a safe withdrawal rate. That’s because, for fixed returns, our formula simply reduces to the good old mortgage amortization math. For example: “=PMT(0.004,720,-1000000,500000,1)” calculates the safe withdrawal rate using 0.4% monthly returns, 720 months, a $1,000,000 initial portfolio (needs a minus operator!!!), with a $500,000 final target. The final argument is set to “1” to indicate that the withdrawals happen at the beginning of the month. Use “0” when the withdrawal happens at the end of the month.
- Morningstar has a white paper, thanks to jp6v for pointing that out in the comments section. On page 4 of that document you get a formula similar to ours (though without the final value target FV). And their formula looks more convoluted than it needs to be, but maybe I’m just a math purist.
- A paper posted on SSRN, thanks to jp6v for the reference. Their formula (3) is the same as our base case formula with a final value target. jp6v has a nice summary of that paper on his own blog.
- Another blogger, gummy-stuff with similar formulas to ours and a spreadsheet with his calculations. Thanks again to jp6v for the link.
But we still have the two innovations that I haven’t seen anywhere else:
- The supplemental cash flows, as used in part 4 of the series (Social Security and Pensions).
- The option to do different COLA adjustments, as used in part 5 of the series.
61 thoughts on “The Ultimate Guide to Safe Withdrawal Rates – Part 8: Technical Appendix”
Thank you for acknowledging how complex withdrawal rates are. I’ve heard people tote rates like 4% and 6% as the be-all-end-all withdrawal rates. In reality, we’re not really sure what safe withdrawal rates will look like in the future, so it’s important to adjust as you go.
Yes, I’ve seen 5%+ withdrawal rate recommendations. Pretty scary! Nobody knows what the future holds but I wouldn’t want to do anything that certifiably didn’t work very well in the past.
I hope you’re not too disappointed but it looks you a nifty formula others have also used for a while. The first time I across it was in Blanchett et al’s “Optimal Withdrawal Strategies for Retirement Income Portfolios” which was published in 2012. They call it the Sustainable Spending Rate (SSR). In their version they always assume you die with exactly $0 left.
Another defunct blogger, gummy, called it the “Magic Formula”: http://www.gummy-stuff.org/sensible_withdrawals.htm
More recently Suarez et al independently published an article on it where they called it “The Perfect Withdrawal Rate” and generalised it to show how to handle leaving money to your heirs.
I’ve used it in a few blogs like https://medium.com/@justusjp/perfect-withdrawal-amount-and-modifying-the-initial-rate-a13ea4400d94#.6xoxockeb (which includes a spreadsheet showing withdrawal amounts for very wide range of circumstances) and https://medium.com/@justusjp/multiple-futures-4b97cf975c85#.6v5zi5ena
I agree that it is much better than the brute force approach. So much so, that I wonder whether everyone is also using it and just not mentioning it because it is so obviously better!
It looks you’ve added a pretty nifty twist, though, by generalizing it even further and adding time varying cash flows and some other things. I’ll have to dig into that more and steal it 🙂
You might want to look into “certainty equivalent withdrawals” which is a nifty method for trying to compare different variable withdrawals schemes.
Excellent comments! True, I didn’t expect to be the very first one to use this technique. Thanks for the links. I included an update in the post and credit you with the great links. But we’re still adding some twists I haven’t seen before, as you mention. Whew!!! 🙂 Feel free to “steal” as much as you need!
Certainty Equivalent is a cool concept! That would be nice if we ever venture into variable withdrawal rates. Absolutely!!! Thanks!
I was up till midnight re-reading all the previous parts of this series and just got done congratulating myself on understanding the math. I picked up a few killer points, like the safe withdrawal rate subtracts a fixed 3% of the initial Portfolio each month not 3% of the current portfolio. This makes a big difference over longer horizons. And then I got to this post. I don’t understand the Math as well as I thought, but I’m glad you posted the expressions you used. This is quality research! I hope it gets play outside the FIRE community, even though it doesn’t have the easy ring of the “4% Rule.”
Oh, no, I hope I don’t have to put a warning sign “may cause sleep deprivation” 🙂
Yes, that’s important: All the calculations so far assume that we start with an amount and CPI-adjust that one. Using a SWR of the portfolio value every month would cause the withdrawals to become as volatile as the portfolio. Not everybody would be up for that. 🙂
Well, my Greek’s pretty rusty these days…but I’ll take your word for it on that front!
Anyway, the answer I got is 12. Did anyone else get 12?? Hmmm…Maybe I missed a step somewhere. 🙂
Great work on all this stuff, ERN – I look forward to the next parts of this series. Off now to freshen up on my lambdas and Cobb-Douglases and gyros and other Greek stuff!
It can’t be 12 because everyone knows the answer is always 42… now I’m dating myself.
Not a bad method to use by the way. Sort of like an amortization table rolled up.
OK, 42 is correct, but only when the retirement horizon is 90+ years. Either way, it’close enough to 12. I’m an economist, not an accountant, after all.
And yes, the amortization formula is just a special case if we assume returns are constant. Same formula as the mortgage calculation (though with a twist of payment at the beginning of the month, rather than end of the month). 🙂
Ha, yes, 12 was the answer we were looking for. Everybody else, please put your pencils down!
Hey, you know your way around in economics! Cobb-Douglas is legend in economics!
Thanks for stopping by, FL!
Just wanted to say thanks for the elegant derivation! I’m an enginerd, so I certainly appreciate when others “show their work”.
Thanks, Rob! Enginerds and Econerds of the world unite! 🙂
With all these Greek symbols, my mind turns to a foreign esCAPE and settling into a coastal cafe on Crete with a chilled bottle of white wine or two, soaking up the sun and ambiance.
If my head is not spinning already it will be after a couple of bottle of wines in the sun!
Thanks for stopping by Dr. PIE! Yup, everything Greek, food or formulas, becomes much easier to digest with some wine. Or Ouzo. Cheers!
I love when people show their work on how they come to their answer. I can’t say that I followed every aspect but I can definitely appreciate the math behind it. Thanks so much for sharing!!!
Thanks, MSM! Yup, transparency is paramount! Glad you enjoyed the post! Cheers,
Hi, Ern, are you aware of sources adjusting the SWR calculations to take a more pragmatic view of the wealth accumulation phase? I.e. do different cohorts of start times have different validity for inclusion into the overall model based on market performance leading up to that month?
For example, if you can’t retire this month, and the market goes down in the following month (or goes down more than your monthly savings can offset), would that following month be a viable cohort member?
You bring up a very important point: If people decide to retire whenever they have “enough” then nobody ever retires at the stock market trough when the sustainable SWR is high and more people retire around the peak when the allowable SWRs are low. I am planning to do a post on that topic later in December or early January!
Yessir- I tried running the sensitivity, eliminating months that dropped by x%. The effect seemed small, likely because short-term drops can occur at any market valuation (or because I miscoded something :-).
I looked at what happens when people start saving for retirement and retire when they reach a certain savings target. You will observe long stretches of nobody retiring during the market troughs, e.g., 2009. It will have a marginal impact on the average safe withdrawal rate. Will have a post on that soon! 🙂
In your =PMT example, should it be 0.04 rather than 0.004?
“=PMT(0.004,720,-1000000,500000,1)” calculates the safe withdrawal rate using 0.4% monthly returns, 720 months, a $1,000,000 initial portfolio (needs a minus operator!!!), with a $500,000 final target.
The 0.4% is the MONTHLY withdrawal rate. 4.8% annualized. Hence 0.004.