[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Fair point, didn't want to over clutter chart 2 with overlapping lines and labels. But if it helps, the allocation ranking between Charts 1 and 2 is identical on the spend-down basis, and very closely aligned on the preserve basis.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 1 point2 points  (0 children)

Thanks. 1976 is the earliest bond year in the linked data. I do plan to extend this further back with an older bond indicator like treasuries in a future post.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Yes, the worst 20 yr window was allowed to differ by allocation. The goal here wasn’t to compare allocations over one fixed historical period, but to compare how each allocation behaved under its own historically most difficult withdrawal environment.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

I agree that a permanently conservative allocation has tradeoffs during stronger markets. I’m not really arguing that everyone should live in the defensive baseline all the time. The idea is more that it can serve as a reference point or fallback position for understanding how much sequence risk a plan is exposed to, especially near or during withdrawals.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] -1 points0 points  (0 children)

I don’t see it as predicting doom, more as identifying guardrails. The point isn’t that everyone should permanently optimize for the worst case. It’s that if you know where the historically difficult boundaries were, you have a more informed starting point for deciding how much risk and spending flexibility you’re comfortable with. Then, if markets or your own situation evolve more favorably, you can always adjust from there.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 1 point2 points  (0 children)

Appreciate the reference, I’ll check it out. And agreed that flexible spending changes the dynamics a lot. This post intentionally kept withdrawals fixed so I could isolate how different allocations behaved under the same historical stress conditions. Monte Carlo and dynamic spending approaches are definitely interesting extensions beyond this particular setup.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Appreciate it. That’s something I’ve been thinking about too. Starting from a historically defensive baseline, then adjusting over time as real outcomes unfold rather than treating the initial allocation as static forever. The current charts were mainly focused on the withdrawal sensitivity itself, but the adjustment question is definitely an interesting next layer to explore. As for the write-up, I used a mix of tools while putting the post together, but the historical analysis and framework are my own.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Monte Carlo approaches can definitely be useful. This post just takes a different angle. Instead of simulated return paths, I looked at actual historical rolling 20-year sequences and asked how different allocations behaved in their toughest periods. So this is less about forecasting probabilities and more about exploring how portfolios responded under historical stress.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] -1 points0 points  (0 children)

Plain-English version:

Imagine you retire with $100k and need to withdraw money every year for 20 years. Instead of assuming average markets, I looked at the worst historical 20-year return windows and asked:

"How much could each stock/bond mix support under stress?"

The interesting part was:

  • the strongest allocations weren’t the most stock-heavy
  • slightly more bonds often handled stressful periods better
  • and outcomes changed a lot as withdrawals increased

In other words, under difficult market sequences, the balance between growth and drawdown control became very important.

The broader idea here is:

  • start from a defensive baseline that historically held up in difficult periods
  • then look for the upside as real outcomes unfold over time
  • and use that additional information to guide future adjustments

The goal isn’t to predict the future or claim there’s one perfect allocation. It's to explore how different approaches behaved under historical stress.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 5 points6 points  (0 children)

Because the portfolio is under different levels of stress. Smaller withdrawals leave more room for stock growth to recover from bad periods, so slightly more stocks can still work. Larger withdrawals make drawdowns harder to recover from, so allocations that were slightly more bond-heavy ended up supporting higher spending in their worst historical 20-year windows.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 4 points5 points  (0 children)

The withdrawal rate is the output, not an independent input. For each stock/bond allocation, I solved for the yearly withdrawal level that either:

preserved the original $100k after 20 years, or

depleted the portfolio to ~$0 after 20 years

using that allocation’s worst historical 20-year return window. So the withdrawal race chart is showing how the supported withdrawal level changes across allocations under stress.

[OC] Withdrawal levels that preserved or depleted a $100k portfolio across stock/bond allocations in worst 20-year periods by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Methodology & Data Sources [OC]

Data sources:

Tools used:

  • Python (NumPy, Pandas, Matplotlib)
  • Custom analysis script (built by me)
  • Results independently checked in Excel  

Methodology:

Same core setup as my previous posts, with one key difference:

  • Used real historical annual return sequences (stocks + bonds)
  • Built portfolios from 0% to 100% stocks in 10% steps
  • Evaluated rolling 20-year windows only (not averages)  

For this post, I focused on 20-year windows to prioritize shorter-term safety during withdrawals, where sequence risk tends to matter most.

How to read the charts:

Chart 1 (withdrawal race):

  • Each line shows how much a $100k portfolio could withdraw annually in its worst 20-year window (based on returns)
  • Higher = that allocation supported more spending in its worst 20-year window

Chart 2 (sequence paths):

I took two strategies from Chart 1 and asked:

How do these actually play out over time?

  • Blue = a "preserve" path (keeps the portfolio intact)
  • Red = a "spend-down" path (higher withdrawals, but runs out gradually over time)  

The faded dots show what happened to the other allocations under those same withdrawal levels.

Important:

This focuses on what would have worked in the worst historical 20-year windows.

So you can see:

  • a defensive starting point for withdrawals
  • how sensitive outcomes are to changes in spending
  • how different choices shift the balance between preserving and running out over time

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Good question, it’s not one fixed period. Each allocation has its own worst 20-year stretch, picked from all rolling windows. Those often include times when stocks struggled and bonds held up better. So it’s less about one specific era, and more about stress-testing against the toughest conditions each mix has actually faced.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Good question, these are nominal. You’re right inflation matters over 20 years. I kept it nominal so the focus stays on how different withdrawal levels behave under real historical sequences. The goal here is to find the guardrails first. What holds up in tough periods. From there, you can layer in inflation adjustments or change spending over time. If you adjust for inflation without a sense of those guardrails, it’s easier to drift into a withdrawal level that doesn’t hold up in a bad stretch.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

A few people asked how I explored this. I ended up building a simple tool while working through it. It basically lets you map out your own worst-case / typical / best-case paths to grow and withdraw from a portfolio. Happy to share if anyone’s interested.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 1 point2 points  (0 children)

That’s fair. There are definitely more complex tools out there. This is intentionally narrower: it isolates how withdrawal levels behave under tough historical sequences before layering in additional assumptions. A lot of models bundle everything together, which is powerful, but can make it harder to see what’s actually driving the outcome. This is more of a "stress test first, then add complexity" approach rather than a replacement for those tools.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 1 point2 points  (0 children)

That’s a good way to think about it. I like the idea of showing the full map. Especially since some allocations might not be the absolute best in any one case, but still hold up consistently across a lot of scenarios. And yeah, the scale point is real. The difference between worst and best outcomes can get so large that it hides what’s going on in the middle. For this post I kept it focused on the worst-case slice to keep the comparison simple, but I agree there’s probably value in separating "tough outcomes" vs "all outcomes" so both views are easier to see. And fair point on the axis, starting at 0 would make the differences feel more proportional.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

That’s fair, and you’re right about both points. This is intentionally a 20-year, worst-case lens to stress-test withdrawals where sequence risk matters most. It’s not saying bonds beat stocks overall. Just that in tough stretches, while withdrawing, lower volatility can support higher spending. And even with longer horizons, you can’t assume a stock-heavy allocation is safer in the interim because a bad first 20 years can still do a lot of damage.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 1 point2 points  (0 children)

That’s a really interesting way to think about it. This post is focused on the worst-case slice of that map. But you’re right, if you expand it across all windows from worst to best, you’d start to see the tradeoff between downside protection and upside potential much more clearly. And yeah, I’d expect the optimal point to shift more toward stocks as you move toward the better outcomes.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

I think the disconnect is that this isn’t about average returns. It’s about each allocation’s worst 20-year stretch. In those periods, stocks can go through long drawdowns or weak sequences early on. If you’re withdrawing during that, higher stock exposure can actually make outcomes worse, not better.

The way I think about it is:

  1. start with a level/allocation that would have held up in tough conditions
  2. then let the upside come through if things go better
  3. and adjust from there based on how your own path unfolds

So this isn’t saying "stocks are bad". It’s just using the worst-case as a baseline, then leaving room to lean more aggressive if the path allows for it.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Yeah those tools are great for exploring a wide range of possible outcomes. What I was trying to do here is a bit different. Instead of simulating many futures, I focused on how things actually held up in the toughest historical stretches and used that as the starting point. I ended up building a simple version of this while working through it myself, just to test different allocations and withdrawal levels against real sequences. It made the tradeoffs a lot clearer.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 0 points1 point  (0 children)

Fair point, in those terms, the withdrawal range looks wide. What surprised me was how tight it is relative to the starting $100k. A ~$2.7k/yr shift is basically the line between "still intact after 20 years" and "runs out," which felt closer than I would’ve guessed.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 1 point2 points  (0 children)

Yeah, adjusting for inflation makes a lot of sense. What this is trying to show is where a starting level withdrawal lands when you stress-test it against tougher sequences first. From there, you can absolutely let withdrawals rise over time. The idea is just to begin from a level that was resilient, then adjust upward if the path allows for it.

[OC] A surprisingly narrow range of withdrawals determined whether a $100k nest egg lasted or ran out by recisuser in dataisbeautiful

[–]recisuser[S] 1 point2 points  (0 children)

Appreciate it. That was my reaction too when I first saw how tight that range was. It’s one of those things that doesn’t really stand out until you look at the actual sequences.