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

  • 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!

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:

  • 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:

We hope we didn’t bore you too much! Please leave your comments below! Until next week!


26 thoughts on “The Ultimate Guide to Safe Withdrawal Rates – Part 8: Technical Appendix

  1. 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.

    Liked by 1 person

  2. 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”:

    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 (which includes a spreadsheet showing withdrawal amounts for very wide range of circumstances) and

    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!


  3. 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.”

    Liked by 1 person

    • 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. 🙂


  4. 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!

    Liked by 1 person

      • 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). 🙂


  5. 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!


    Liked by 1 person

Leave a Reply

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

You are commenting using your 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 )

Google+ photo

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

Connecting to %s