*October 12, 2022*

As promised in the “Building a Better CAPE Ratio” post last week, here’s an update on how I like to use the CAPE ratio calculations in the context of my Safe Withdrawal Rate Research. I have studied CAPE-based withdrawal rates in the past (see Part 11, Part 18, Part 24, Part 25) and what I like about this approach is that we get guidance in setting the initial and then also subsequent withdrawal rates based on economic fundamentals. That’s a lot more scientific than the unconditional, naive 4% Rule. In today’s post, I want to specifically address a few recurring questions I’ve been getting about the CAPE and safe withdrawal rates:

- Can a retiree factor in
**supplemental cash flows**like Social Security, pensions, etc. when calculating a dynamic CAPE-based withdrawal rate, just like you’d do in the SWR simulation tool Google Sheet (see Part 28 for more details)? Likewise, is it possible to raise the CAPE-based withdrawal rate if the retiree is happy with (partially) depleting the portfolio? You bet! I will show you how to implement those adjustments in the CAPE calculations. Most importantly, I updated my SWR Simulation Google Sheet to do all the messy calculations for you! - With the recent market downturn,
**how much can we raise our CAPE-based dynamic withdrawal rate**when we take into account the slightly better-looking equity valuations? Absolutely! It looks like, the 4% Rule might work again! Depending on your personal circumstances you might even be able to push the withdrawal rate to way above 4%, closer to 5%! - What are the pros and cons of using a 100% equity portfolio and setting the withdrawal rate equal to the CAPE yield?

Let’s take a look…

### CAPE primer

Because I haven’t specifically written about CAPE ratios and their application to safe withdrawal rates in a while, let me just get everybody up to speed again on why and how CAPE ratios matter for retirees. Even if you don’t pursue a dynamic CAPE-based safe withdrawal rate, but prefer to use the standard Trinity Study-style calculations with a fixed withdrawal amount (though adjusted for inflation), CAPE ratios should matter for setting that withdrawal amount and percentage. Here’s again a chart from an earlier post to drive home this point. All the historical failures of the 4% Rule have occurred when the **CAPE earnings yield** (= one divided by the Shiller CAPE Ratio) was under 5%, i.e., when the CAPE Ratio was above 20. So it would be way too conservative to use a 4% Rule when the CAPE Ratio is in the low teens. But a 4% Rule might be way too aggressive conditional on facing a high CAPE ratio because the conditional failure probability is much higher than the (unconditional) failure probability you’d get from a Trinity Study.

Because of the great relevance of this CAPE ratio to retirement success, I dedicate a portion of the main results table of my SWR Google Sheet (see Part 28 for the link and explanation) to the different valuation regimes, please see the screenshot of the table below. It’s the failure probabilities for different withdrawal rates (ranging from 3.25% to 5.25%) over the entire sample, but also conditional on equity valuations. For example, a 4% WR might seem somewhat safe with an 11.62% failure rate. But this disguises the fact that we encountered failures in 37% of the retirement cohorts when the initial CAPE ratio was elevated, at above 20. The failure rate rises even further, to 43.2% when both the CAPE was above 20 and the S&P 500 index stood at an all-time high at the commencement of retirement. *(and I should note that this is the baseline scenario with a 60-year horizon, 25% final value target, and modest supplemental flows later in retirement coming from Social Security and a pension)*

I also like to highlight the **extreme sensitivity **of failure rates as a function of the withdrawal rate. And the sensitivity is more extreme if equity valuations are elevated. For example, shifting withdrawal rates from 3.50% to 3.75% and then 4.00%, when the CAPE is below 20, the failure rates go from essentially 0% to 1.7% and then 5%. But when the CAPE was above 20, the failure rates go from 2% to 24% and then over 37%. So, to everybody who’s making fun of my blog for calculating withdrawal rates with precision behind the decimal point, I laugh straight back at you for not understanding the simple finance wisdom that small changes in your financial strategy will amount to a huge difference after 60 years of compounding!

So, how can you use the new CAPE ratio in the traditional SWR worksheet? Simple, at the bottom of the parameters section you can toggle back and forth between the old, traditional Shiller CAPE and the new adjusted CAPE ratio. Use option 1 (=old) or 2 (=new) respectively. The new default setting is 2, for the new adjusted Shiller CAPE.

### CAPE-based Dynamic Safe Withdrawal Rates – a primer

Just to get everyone back to speed on dynamic withdrawal rates, here’s a quick primer on the CAPE-based SWR rules. In the most basic setup, we calculate our withdrawal rate as

`WR = intercept + slope / CAPE`

Notice that our setup also encompasses, as a special case, another popular withdrawal rate rule: the Bogleheads variable percentage withdrawal (VPW) rule, if we set the slope to zero and fix the withdrawal amount to a certain percentage of the portfolio. But of course, we do want equity valuations to have an impact because economic fundamentals should matter. There are three neat features of using a withdrawal rate contingent on equity valuations:

First, we find an initial withdrawal amount that’s calibrated to be consistent with equity valuations. Second, our subsequent withdrawal amounts will adjust to changing portfolio values but also equity valuations. That’s a great improvement over the naive Bogleheads rule that uses a fixed withdrawal rate (though adjusted for retirement horizon). With a variable withdrawal rate, your withdrawal **amounts **will be significantly less volatile than the portfolio value. The portfolio may be down 20%, but the withdrawal amount is only down by, say, 10% because you also adjust the percentage withdrawal rate to reflect the better-looking CAPE ratio after an equity market correction.

And third, our CAPE approach satisfies Bellman’s Principle of Optimality. It implies that subsequent retirement planning decisions are following an optimal path, as though the retiree had simply re-retired under the new prevailing conditions. This Bellman Principle is violated in the naive Trinity-style fixed withdrawal amount calculations, and that always bothers me! But if you’re not a math geek, please ignore this one point! 🙂

If you’re familiar with my Google Sheet (see Part 28 for the most recent comprehensive guide to the sheet), you can enter supplemental cash flows to be taken into account in the traditional safe withdrawal rate simulations. But not in the CAPE-based simulations. As you might recall, I set up a separate tab where you can enter your future supplemental cash flows, like Social Security, pensions, home sales or purchases, anticipated nursing home expenses, etc. Until now, the CAPE-based rule is calibrated to target capital preservation and it ignores all supplemental cash flows. A reader asked me a while ago how he would factor in those supplemental flows. I had some ideas on how to “hack” my Google sheet, and I implemented those in the latest Google Sheet. This brings me to the next point…

### Factor in supplemental cash flows and (partial or complete) asset depletion

So, here’s how to calculate that new CAPE-based withdrawal rate:

**Step 1: CAPE Rule basics**

We still calculate an **initial **CAPE-based safe withdrawal rate, **assuming no additional cash flows and capital preservation.** In this case, I use a CAPE of 27 and the following CAPE parameters: intercept=1.75% and the slope of 0.50, as I recommended in previous posts, e.g., in Part 18. So, the SWR calibrated for capital preservation and no additional cash flows would be…

`WR = 0.0175 + 0.5 / 27 = 0.036`

In other words, the initial CAPE-based SWR is 3.60%.

**Step 2: Supplemental Cash Flows**

Enter the supplemental cash flows as you would always do in the Google Sheet, namely in the tab “Cash Flow Assist”. Notice that there are columns for cash flows that are already inflation-adjusted (e.g., Social Security, most government pensions, etc.) as well as cash flows that are in nominal dollars (e.g., most corporate pensions). For example, as the baseline scenario in that Google Sheet, we have a retired couple where one spouse expects $2,000 in Social Security in month 301 (25 years into retirement) and the other spouse expects $800 in month 313. Furthermore, to account for higher health expenses we model a negative cash flow of $1,000 starting in month 361, and $2,000 starting in month 481. There’s also a corporate pension worth $300 a month starting in month 133 (year 11), but it’s not CPI-adjusted. You’d also enter your current portfolio value here, $3,000,000 in this case.

Calculate the **present value of all supplemental cash flows**, using the initial CAPE-based withdrawal rate as a **discount rate**. Add this discounted value to the initial (financial-only) net worth. And of course, you don’t have to do that by hand, the Google Sheet does it for you! In this case, the portfolio was worth $3,000,000 and the supplemental cash flows add another $189,499 to that net worth.

**Step 3: Factor in the (partial) asset depletion.**

Partial asset depletion is already modeled in my standard SWR package. In the baseline example, the couple has a 60-year (720-month) horizon and they like to leave a bequest worth 25% of the initial portfolio value, i.e., $750,000. You already entered those parameters on the main parameters page, together with all the other parameters, like portfolio weights, see the screenshot below:

In the context of the CAPE-based WR calculations, we can now compute the target withdrawal amounts through the Excel (or Google Sheets) PMT function, calculating the level of monthly payments to deplete a total net worth of $3,189,499 down to $750,000 over 720 months assuming an average return equal to the initial CAPE-based SWR. I get $10,368 or an annualized 4.15% withdrawal rate relative to the initial portfolio value of $3,000,000. That’s pretty awesome because we’ve just made the 4% Rule sustainable again!

So, enter your parameters and see how much you can raise your CAPE-based safe withdrawal rate. And please share your results in the comments section if you like!

### With the new CAPE, the 4% Rule looks even better!

So it looks like even with those still-lofty Shiller CAPE stock valuations of about 27, this couple can use a withdrawal rate of more than 4%, despite their long horizon. If we use the new adjusted CAPE of just about 21 (as of 10/11/2022), we can even increase the withdrawal rate to 4.13% (basic) and 4.57% (factoring in the additional cash flows and the asset drawdown).

A small caveat here: This CAPE-based *dynamic *withdrawal rate is not a one-time, set-it-and-forget-it kind of deal. The CAPE-based withdrawal amounts are still subject to portfolio risk over time. If the market were to tank another 20% you’ll certainly start reducing your withdrawals as well. But the nice feature of the CAPE-based withdrawal amounts is that even if your portfolio drops you may not have to reduce your withdrawals one-for-one by the same percentage. That’s because a further drop in the equity market will also make equity valuations more attractive and thus raise the CAPE-based withdrawal rate again. Let me cook up the following experiment to showcase this.

Imagine we start with that same scenario, a 60-year horizon, a $3m initial portfolio, a $750k bequest target, and the moderate cash flows described earlier. The CAPE stands at 21.00. We end up with an “initial” CAPE-based of 4.13% (ignoring supplemental flows, targeting capital preservation) and an adjusted monthly spending target of $11,427, or 4.57% p.a., relative to the $3,000,000 initial portfolio.

Now assume that the 75/25% portfolio takes a 20% hit in the stock portfolio and a 10% drop in the bond portfolio, which translates into a 17.5% drop in the overall portfolio. For simplicity, I also assume that this drop happens all at once. What would that do to the SWR calculations? First, the paper portfolio is down to $2,475,000. But the CAPE ratio also drops to 17.60. We would drop the monthly withdrawals to $10,299. But that’s only a 9.9% drop even though the portfolio is down by 17.5%.

So, there’s this nice **offsetting effect **that cushions the drop in the portfolio. Also, notice that because the drop in the portfolio happened instantaneously, we slightly overstate the drop in the withdrawal amount. If the 17.5% drop in the portfolio had happened over the next several months, the target withdrawal amount would have been slightly higher because a) we would have already slightly shortened the remaining retirement horizon and b) we’d be increasing the present value of the future positive supplemental cash flows.

### Even in the static withdrawal simulations, 4% and even 4.5%+ may work again!

How about the traditional Trinity-style simulations? Well, the rationale for higher withdrawal rates today, as in October 2022, is that since the market has already dropped by quite a bit, it would seem overly conservative to calibrate today’s withdrawal rate to the 1929 or 1968 market peak. Do I really believe that after a 23% or so drop in nominal terms and even a 28% drop in real terms, the stock market will now tag on another Great Depression-sized drop? Highly unlikely. What’s more realistic and reasonable is to calibrate the current (October 2022) withdrawal rate to historical situations that were equally beaten down from their respective recent stock market peaks. That’s easy to get from my spreadsheet! In the Main Results tab, there’s a table that lists the **fail-safe consumption rates as a function of the equity drawdown**. Turns out, that after a 20% drop, we already make the 4% Rule viable again. And in the real drop between 25% and 30% region, we’re already up at 4.17 and 4.38%, respectively. So, in light of the recent drop, we can be a little bit more aggressive.

Notice that this calculation used the 60-year horizon. Using a traditional 30-yer horizon, we can easily push that conditional rate up to above 4.5%, even close to 5%! Go ahead and play around with your own parameters. You’ll be surprised! The 4% Rule, maybe even the 5% Rule may be alive and well!

### Can I use a 100% equity portfolio and set the withdrawal rate to the CAPE yield?

This is a question I’ve been thinking about for a while and then recently it came up again in the comments section and in a newsletter/blog post that I subscribe to. Today’s blog post is a great excuse to write about this idea!

The rationale against a 100% equity portfolio is that it would be far too volatile for the average retiree. But Victor Haghani (Elm Partners Management) made this important point in his excellent and thought-provoking post “A Sheep in Wolf’s Clothing“: Maybe we shouldn’t focus so much on the portfolio volatility. If we withdraw the 10-year rolling EPS from an equity portfolio then the *earnings *volatility rather than the *portfolio *volatility impacts our retirement happiness. And the annualized standard deviation of earnings was only 7%, much lower than the volatility of the stock market.

So, I wanted to check how a CAPE-based withdrawal rate with a slope of 1.0 and intercept of 0% would look in practice. Right now, with a CAPE of about 21, that would translate into a withdrawal rate of 4.76%, and that’s before the adjustments for supplemental flows and partial depletion of the portfolio, which could easily lift the rate to above 5%.

In any case, I first set the equity weight to 100% and all other asset classes to 0% in the main tab:

Next, how do we evaluate a CAPE-based strategy? The CAPE-related tab helps us simulate how this simple CAPE-based rule would have performed over time (without supplemental flows though!). In fact, we can study how the withdrawal rates and withdrawal amounts would have behaved over the 1871-2022 period, see the screenshot below. The results are not that promising. There were a few cohorts that would have suffered massive declines in their retirement spending. Above all, the cohort that retired right before the 1907 banking panic and then went from one disaster to another, WW1, the Depression of 1920-1921, and then the Great Depression. They eventually had to cut their withdrawals by more than 81% over a 30-year horizon. Tightening the belt doesn’t start to describe that. We’re now entering “eating cat food in retirement” territory.

In fact, even the 1929 cohort saw a drawdown of 44+% of withdrawals during their retirement, though the final withdrawal amount recovered and even surpassed the initial 1929 amount by 2.26%. The 1965-69 and 1970s cohorts also got hammered if they had applied this rule. The good news is that the cohorts that retired around the dot-com and Global Financial Crisis peaks both fared really well.

What causes the precipitous fall in the portfolio value and the withdrawal amounts during those two episodes? Very simple: The CAPE ratio dropped deep into the single digits, and that caused withdrawal rates of almost 20%. Even if the stock market eventually recovered again, the portfolio minus the withdrawals had taken such a severe hit that the retiree suffered massive declines in purchasing power. Sequence of Return Risk!

Bummer! Suddenly, the prescription from Victor Haghani’s article doesn’t sound so attractive anymore. Sure, the volatility of annual changes in withdrawals is low, around 4-6%, but that’s of little help if the trend is down 3.5-5.0% on average every year and 60-80% over a 30-year horizon.

So, unfortunately, the CAPE-based rule WR=1/CAPE doesn’t work so well in practice during the very deep bear markets in the 1920s, 30s, and 70s. But during the 2000s you would have fared very well, thanks in part to an extremely low initial withdrawal rate of only 2.37 at the peak in 2000. What also helped you is that the CAPE didn’t even drop below 10. The low point around the Global Financial Crisis was about 11 (based on month-end index data). The CAPE stayed below 15 for only 9 months in 2008-2009. So, there was never any risk of severely depleting your 100% equity portfolio. If we believe this pattern repeats in the current bear market you might get away with a 100% equity portfolio and this CAPE rule.

If you’re uncomfortable and worried about a sharp drop in withdrawals again, you could choose a rule slightly more cautious. For example, pick an intercept of -0.25% instead 0% and a slope of only 0.9 instead 1.0. I also added a feature of capping the CAPE withdrawal rate. An upper limit of 10% seems to work pretty well in the simulations. So, we’d limit the extreme drawdowns in the early periods, while also maintaining pretty solid initial withdrawal rates in today’s environment: 4.04% as the raw withdrawal rate and 4.49% when taking into account the supplemental flows and partial asset depletion.

### Side note: A TIPS ladder approach

This side note has nothing to do with the CAPE, but I just wanted to mention how today’s improved **bond **valuations also improve our safe withdrawal math. Specifically, here’s another approach to make the 4% Rule work again: Invest in a ladder of TIPS (=inflation-protected government bonds) because real yields on TIPS have now reached levels that would easily sustain a perfectly risk-free retirement income stream, albeit only for 30 years. A quick look at the TIPS term structure on 10/11/2022 (via Bloomberg) tells me that the entire real yield term structure is now between 1.5% and 2% again.

If we apply a weighted average of, say, 1.8% real return over the next 30 years, we can generate a real safe withdrawal amount of $42,633 per $1m of capital, using the Excel PMT function. So, a safe withdrawal rate (with depletion over 30 years) would stand at 4.26% again:

`=PMT(0.018,30,-1000000,0,1)`

That’s significantly better than I Bonds. They currently yield 0% real, giving you only a 3.33% safe withdrawal rate with depletion. And you can’t even move $1m all at once into I bonds due to the $10,000 per person/entity per year limit.

### Conclusion

In the post last week, I introduced a few adjustments to the Shiller CAPE and they seem to shift the CAPE into a slightly more reasonable range. And sure, the market is still a bit overvalued. But chances are that we can push the CAPE-based withdrawal rate to 4% and above. Even higher when we take into account partial asset depletion and supplemental cash flows later in retirement. As someone in the comments pointed out, this is a bit of a “hollow victory” because you can apply a higher withdrawal rate but everybody’s portfolio is down since January 2022. Granted, but I still see folks applying 3% and even sub-3% withdrawal rates in today’s market. Relax, everybody, the risk of another bad market event on top of the current drawdown is low!

Likewise, with the adjusted CAPE quite close to dropping below 20 and the S&P 500 dropping more than 25% in real terms since the beginning of the year, I am also ready to announce that even in the traditional **static **SWR calculations, we should now safely move the withdrawal rate to 4% and above. Well, you heard it here first; the 4% Rule works again! And with a little bit of flexibility and a generous pension and Social Security benefits later in retirement, you can certainly go crazy and justify 4.5% or higher!

I’m confused about what asset allocation the CAPE based rule sheet assumes? It doesn’t look like any of the formulas are connected to the asset allocation that is chosen on the parameters sheet? If I change my asset allocation it doesnt change the target withdrawal rate on the CAPE rule sheet. Similarly, I dont understand what choosing CAPE1 vs 2 on the parameters tab affects since on the CAPE based rule tab, it shows you the current CAPE1 and CAPE2 and then it seems that you just manually enter the desired CAPE in cell b9 of that sheet. Thanks for any clarification you can provide. I did read this post, the instructions, etc but i’m still confused.

You need enough equity exposure to make it work. But anything between 60% to 100% equity exposure should be suitable for the CAPE rule. WIth less equities you have less long-term growth but also less short-term vol.

That’s why you want to use the SWR sheet and especially the CAPE tab to calibrate how much short-term vol you can accept.

Just want to confirm the WR equation. You have WR = intercept + slope / CAPE Here, order and parenthesis (or lack of) matter. Is it truly the slope divided by the CAPE then the result is added to the intercept? Or, is it the slope added to the intercept result that is divided by the CAPE?

No bracket. so its a+b/CAPE and most certainly not (a+b)/CAPE

So, if I use the defaults for the portfolio allocation on the parameters tab (with 100% as the final value target and 720 month horizon) the highest SWR with a 0% failure rate is 3% (for both Cape 20). On the CAPE sheet, the SWR with today’s CAPE2 being 23.57 is 3.87%. What accounts for the difference (what parameters and which result should I expect to be similar to the CAPE rule SWR)? I realize that the CAPE calculation is just a static calculation but I’d still expect that I should be able to get a similar result on the main sheet w/ the right parameters…

The 3% is the historically safe WR. You’d likely never have to adjust that.

The CAPE-based rule can start with more initially but has the potential for some sharp declines in your retirement budget.

Thanks for all the work you’ve done, both for the tools and write-ups! They are extremely helpful, and I feel like I learn a lot just by following along with your thinking over time.

I love the intuition and motivation for the CAPE-based dynamic withdrawal. But, (after rereading parts 11, 18, 28, 54) I still feel like there’s a gap in posts/toolbox in terms of demonstrating that the dynamic-CAPE strategy is really “safe”, or directly quantitatively comparing its upsides versus static withdrawal (% of original portfolio). For the static strategy, the toolbox does a great job of answering questions like:

1. For some initial endowment/allocation strategy, what lifestyle (minimal $ withdrawal) can I support with high probability? What is the p25/p50/p75 outcome I can expect?

2. How does my situation change if I vary my initial endowment, retirement duration, allocation strategy, etc. What are the tradeoffs for working another year, shifting into bonds, etc.

In contrast, it looks like the tuning and evaluation of the CAPE dynamic strategy is based on picking a good tradeoff between max drawdown vs withdrawal-at-one-point-in-time. But, at least for me, this doesn’t map to my real-life values for either risk (do I need to make sure I can live off a monthly income corresponding to the max drawdown indefinitely? That’s surely too conservative, but not sure how else to use this datapoint) or reward (neither SWR at start nor worst-case-drawdowns are great at capturing the likely dollar withdrawals throughout retirement).

You make a point that dynamic strategies can’t ‘fail’ in the sense of having assets fall to 0, but they still can fail to meet an expected minimal lifestyle in retirement. If this is the most-used metric for static strategies, then probably it’s an important way to evaluate dynamic ones as well.

My wishlist would be something like [and, if I can’t excite you enough to do it, may take a stab at it myself :) ]

– Simulation support for withdrawal strategies like: Withdrawal(in dollars)=Max(some small % initial portfolio, CAPE-based dynamic % of current portfolio). Intuitively this corresponds to having some minimum lifestyle, such that not being able to maintain it throughout retirement is a failure case. (And, I imagine this is what many people would do in practice – adjustments based on the market, but a floor on withdrawals for essentials);

– Or, alternatively, have some definition for ‘failure’ which can be shared across static/dynamic strategies, and captures some other intuition for what it means for a strategy to be safe (e.g. could be something like, >x months with <y withdrawal is a failure)

– Since the dynamic strategy now has a failure rate, it can be directly compared with static strategies. e.g., get some results which look something like (numbers made up):

— You can get a 2% failure rate with a static withdrawal of 3.25%. You can get the same failure rate with Max(3.15% initial, CAPE-rule (1.5,0.5)). And, the latter results in [some distribution] of additional consumption. So, at constant failure rate, you're buying X additional consumption in expectation by being willing to drop spend by 10% in bad times. If you're willing to drop spend 20% sometimes then instead you can use CAPE parameters (1.75, 0.5), etc. etc.

In a simple spreadsheet like the one I post (See Part 28), I can easily simulate the fixed rate withdrawals for all retirement cohorts, as we all know. See the simple math behind that explained in Part 8.

Or the CAPE-based because there’s no path dependence. So we can just plot the entire chart of 150+ years of asset values, and you can pick any x-year window and rescale to the year 0 amount that applies to you.

Mixing CAPE-based rules with the floors and ceilings you describe is harder because each cohort has to be simulated separately over t time loop, and then we need another loop over cohorts. I have done simulations like that, but it needs to be done in Matlab, Python, or some other language. Excel/Google Sheets won’t accommodate this. So, thanks for the wishlist, but unless someone helps me translate the Google Sheet into an App that can perform calculations with loops over all retirement cohorts, this is not feasible in the current form.

I need to introduce you to CrystalBall (now owned by Oracle) or @Risk. Both of these are add-ins for Excel that do MonteCarlo analysis. They can to exactly what you say can’t be done in Excel.

Thanks. As outlined in this series many times before, I prefer not to us Monte Calo simulations for SWR analysis.

> unless someone helps me translate the Google Sheet into an App that can perform calculations with loops over all retirement cohorts, this is not feasible in the current form.

I put some time in and have built out a library to support this kind of simulation support in Google Sheets on top of the current Toolbox, using Apps Script to write custom functions (https://developers.google.com/apps-script/guides/sheets/functions).

It supports some things which were already not too hard (e.g. define some arbitrary withdrawal function and simulate what happens for single cohort). But also, it can use the simulations to find the SWR for these new withdrawal functions for each cohort (or find one parameter in a multi-parameter withdrawal function, for fixed values of other params). You can also define new failure conditions other than the value of final portfolio (e.g., if withdrawal amount is less than x for y months, that counts as a failure), which may be helpful for proportional withdrawal strategies.

Let me know if this is something you’d be interested in playing around with yourself or including in the toolbox. I can walk through what I’ve done in more detail if there’s interest.

Thanks for the link. I will check it out. Of course, the function has to accommodate not just the trivial examples like simply doubling a number. We’d need the functionality to run loops over return months to better accommodate the path-dependent strategies like Guyton-Klinger, floors/ceilings, etc.

Where would be a good source to see all the functions, like for-loop or matrix algebra to be used within the function?

The link above is just a reference for how I’m getting this kind of arbitrary code into google sheets. The code itself can just be any arbitrary javascript you want, so I coded up the logic for actually doing the simulations, as well as for finding SWR. You can see my version of the toolbox but with simulation code added here: https://docs.google.com/spreadsheets/d/13Lw39K1tv8b-9kpgSl7RcQhXD4Jz2omcGtc7Dxkoc_E/. To see the code I wrote, you click Extensions > Apps Script (or, I think you can jump directly to the code here: https://script.google.com/u/0/home/projects/1H9g7H2tEA1D1dxlspn2270YvcOUFIMP58ZJL0yliseFMQkU7ibUVp87D/edit)

—-

Comments on the sheet:

Most of the sheets are unchanged from the current toolbox. Places you can see the new logic used are:

1. In the new ‘Sim Tests’ tab, I pulled a bunch of examples of results from other parts of the sheets, which I then replicated using the new method (to show how it’s possible, and also to make sure that no errors). e.g., first column has SWR for constant withdrawal pulled from the ‘SCR time series’ tab, and then the column next to it computes it using the new FIND_SWR_CONSTANT_WITHDRAWAL function I wrote. Similarly, I directly compute the highest safe ‘a’ parameter in a CAPE-based constant withdrawal strategy for b=0.5, etc. Nothing in this tab does anything which wasn’t possible before, it just shows how you’d do old things using the new simulation library.

2. In the ‘SCR time series’ tab I have a new column ‘Simulated SCR’, which is just the SCR for the full dataset computed using the new function. This means you can compare the full time-series using the new method next to the old one and confirm that they’re the same. It also shows the way I found to get reasonable performance – each of the blue cells represents a function call, each of which returns a batch of SWR outputs for 500 months. This is the best way I was able to get good performance for the sheet – if each function call returns the results for only one month, then you need >1k function calls every time you update the sheet, which google sheets does not handle well. If you have one function call to compute all months though, that single function call can take a while. The compromise I’ve found is to batch into sizes of 500, which I’ve found keeps the time to rerun all the simulations to ~10s.

3. Also in the ‘SCR time series’ tab I have a column ‘Floor in Max(CAPE-prop, floor) Sim’, which is an example of a new kind of behavior which these functions can support. For each month, it computes the highest safe-value for ‘floor’ where withdrawal is given by MAX(floor, current_portfolio * MIN(a + b/CAPE, max_wr)) (a, b, max_wr pulled from the sheet), and where any situation where you withdraw the ‘floor’ value for >= half of the months also counts as a failure. So this example shows how these methods let you pretty easily incorporate more complicated withdrawal functions, as well as more complicated failure criteria.

—-

Comments on the code:

The ‘Public’ file has the actual functions which are used within the Sheets. For that one I tried to be a bit more careful with the comments, so should be reasonably accessible in terms of what each of the function arguments mean.

You can think of the rest of the files as a kind of library I wrote to support these custom functions.

The ‘Simulation’ file has the basic logic for looping over portfolio returns and additive flows with a given withdrawal function and returning portfolio value. The ‘Search’ file implements a variant of binary search, which the code in ‘SWR’ file then uses to find the SWR for a withdrawal function with one free parameter by binary searching over some specified range. ‘WithdrawalFuncs’ and ‘FailFuncs’ are where I’ve put the different withdrawal/failure functions I’ve implemented so far. You can think of all of these files as just the javascript library I built to support the custom functions used within Sheets.

It should be pretty easy to code up a SWR function for pretty much any new withdrawal strategy you come up with. You mostly just make implement a new withdrawal function generator (following the pattern you see in WithdrawalFuncs), and then pass all the relevant inputs into findSWRMulti. The only assumption that the simulation/search code is making which you need to keep in mind is that failure is monotonic in the parameter you’re searching over (i.e. if you fail for some parameter p, then you also fail for all parameters >p), but I feel like this should be true for any reasonable parameterized withdrawal function.

OK, that’s a mouthful. Thanks for putting this together! I will research this some more this coming weekend!

Hi Karsten, First, thanks very much for your valuable series on SWR and the toolbox. I have learned so much from your posts and use your toolbox as a valuable input to my own retirement decision making. I have been looking at the CAPE-based Rule sheet and wonder how to think about the interest rate used in B16. It bothers me that the target withdrawal rate is so much higher with the CAPE-based rule compared to the static SWR from the main tab (5.4% @ CAPE=30 v. 4.2%). I would have thought the initial CAPE-based withdrawal rate at high CAPE should be close to the failsafe SWR from the main sheet. This is similar to the way (I think) you set the CAPE intercept and slope to give a reasonable (capital preservation) SWR of 3.27% at CAPE 30.

Part of this is driven by the different discount factors applied to the supplemental cash flows using the static and CAPE-based SWRs. If I adjust B16 to split the payment into two parts: one for the main portfolio using the B10 interest rate and another for the supplemental cash flows using the inflation rate from cash flow assist tab I can knock down the CAPE target withdrawal by about 0.2% which narrows the gap a bit.

I’d be grateful if you can steer me in the right direction in thinking about the difference between the static and CAPE-based target withdrawal rates.

The two SWRs shouldn’t be similar at all. You can start higher with a CAPE-based rule because if the market tanks you will decrease your actual withdrawals, while the fixed withdrawals stay fixed.

Does the Total Withdrawal Amount shown in cell B16 (CAPE-Based Rule tab) equate to a Safe Withdrawal Amount or a Safe Consumption Amount? Thanks, Joe.

Safe consumption. Withdrawals are adjusted for supplemental cash flows.

Hi, very interesting and useful blog and tool. I looked everywhere, but can’t figure out how to find today’s CAPE every day. If I understand correctly, you adjusted the Shiller CAPE somehow. Where can I find your adjusted CAPE periodically, so I can plug in the right number every day?

I write about the CAPE in this post: https://earlyretirementnow.com/2022/10/05/building-a-better-cape-ratio/

Daily Updated CAPE estimates here: https://drive.google.com/file/d/1ugtRN3TaAVwQi-20mjt4DctF-glppSMD/view?usp=sharing

I try to update this daily. But if the numbers are outdated you can extrapolate yourself:

new CAPE = my CAPE(=CAPE.ERN1 or CAPE.ERN2) / my last SPX quote(=SPX.ERN in column C) * today’s SPX quote.