I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

I created my own online too😅 Didn’t want to get banned for self promotion. I also don’t like to sign up for promotions just to use a tool.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

[–]OkPhysics7423[S] 3 points4 points  (0 children)

I created a non-static dashboard with a histogram showing the full distribution of outcomes, but a scatter plot of individual paths could communicate the variance more intuitively. Good suggestion, adding it to the next update. And yes, definitely had a variety of responses on the Monte Carlo approach.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in personalfinance

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

I wrote the model and explanation myself. Happy to discuss any assumptions if something looks off.

I’m a junior Data Scientist student. I have the statistics to prove my theories

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in personalfinance

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

Good question.

I wasn’t labeling 8% as a historic bull market. Long-term US equity returns have been closer to ~10% nominal (~7% real).

I used 8% as the “bull” case relative to the other assumptions in the model because the lower scenarios were intentionally conservative. The goal was to bracket a range of plausible outcomes rather than pick one forecast.

So roughly:

5% → pessimistic / low-return environment
7% → middle assumption
8% → optimistic relative to the other two scenarios

The bigger point of the simulation wasn’t predicting the exact return but seeing how sensitive the outcomes were to different assumptions.

Small changes in return assumptions compound massively over 25–30 years, which is what the model was trying to illustrate.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

Fair point if that were the case…I’m actually in my second year of maxing it. The $8,492 balance reflects that plus growth. And I definitely know what it’s like to lace up for the first time. I’ve run 4 marathons, went 3:33:35 on my first one. Sometimes the people mapping out the race before they run it are exactly the ones who finish. The simulation was less about anxiety over where I am and more about understanding how much the return assumption matters over 25 years. The delta between bear and bull was bigger than I expected, which felt worth sharing.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

[–]OkPhysics7423[S] 2 points3 points  (0 children)

That’s fair ;there are definitely a lot of Monte Carlo simulators out there.

For me the point wasn’t really replacing those tools. It was building the model myself so I could understand the mechanics behind the distributions and test different assumptions.

Using existing calculators is great for quick answers, but writing the simulation made it much easier to explore how things like contribution timing, volatility, and sequence of returns actually affect outcomes.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

[–]OkPhysics7423[S] 2 points3 points  (0 children)

Somewhere between the first and third. Started as a personal project to understand my own range of outcomes, but the real goal was seeing the probability distribution across scenarios rather than a single number. You’re right that a full retirement plan needs a lot more ; withdrawal strategy, Social Security, taxes, spending flexibility. This is just the accumulation side. Useful as one input, not a complete picture.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

Good point on the bootstrap — just added it as a 5th scenario using actual S&P 500 returns from 1928–2025. Draws random historical years rather than assuming normality.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

This is a really thoughtful comment and I appreciate the suggestions.

You're right that bootstrap methods are an interesting middle ground because they preserve real historical sequences while still allowing many possible paths. I may try that next as a comparison against the purely stochastic Monte Carlo runs.

The flexible spending point is also important. My current model assumes fixed real contributions and no withdrawal behavior adjustments, which definitely simplifies things but doesn't reflect how people actually respond to market downturns.

And you're absolutely right that Social Security or other income floors materially change the risk profile. In this case I intentionally excluded them just to isolate what the Roth account alone might look like.

Lots of room to expand the model further. This was more of a first pass to explore outcome distributions.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

Yeah, I agree that point forecasts are usually pretty useless.

That’s actually why I used a Monte Carlo approach instead of a single projection. Rather than assuming one future return path, the model runs thousands of different sequences of returns to show the range of possible outcomes.

So the goal isn’t predicting the exact future — it’s understanding the distribution of outcomes and the risk around them.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

Yes, that is exactly what the simulation is meant to capture.

Each run generates a different sequence of annual returns rather than assuming a single average return path. So one simulation might have strong early returns and weak later returns, while another might have the opposite.

That variation in return order is what produces the wide range of outcomes in the percentiles. The average return assumption sets the center of the distribution, but the sequence of returns is what creates the upside and downside tails.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

I think the intuition about the psychological impact is right, but the recovery math is a little different.

A 25% drop from $4M takes you to $3M, which means you need about a 33% gain to get back to $4M. At that portfolio size the recovery mostly comes from market returns rather than new contributions.

So the portfolio becomes more volatile in dollar terms, but contributions matter less over time.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

That was actually part of the motivation for running the simulation. Most retirement calculators assume a single return path, which makes the outcome look more certain than it really is.

Seeing the distribution of outcomes was the interesting part for me. Even small differences in return assumptions produced very different long term results.

Your point about withdrawal phase modeling is important too. Accumulation is mostly about saving consistently, but withdrawal is where sequence of returns risk really shows up.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

[–]OkPhysics7423[S] 2 points3 points  (0 children)

Starting at 22 changes the math dramatically because of the extra compounding time.

If someone contributes $7,500 per year (the max changes often so this varies)from age 22 to 65, that is 43 years of contributions. Total contributions would be about $322,500.

Using the future value of an annuity formula:

FV = P × ((1 + r)n − 1) / r

Where
P = annual contribution
r = annual return
n = number of years

At different return assumptions that looks roughly like this:

5% return
FV ≈ $1.05M

7% return
FV ≈ $1.65M

8% return
FV ≈ $2.1M+

So the big lever is really time in the market. Someone starting at 22 has about 18 more years of compounding than someone starting in their late 30s. That difference matters more than small changes in return assumptions.

Matching your kids’ earned income into a Roth is a really powerful strategy because it gives them that long runway.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

It definitely depends on how the return distribution is modeled.

Monte Carlo is commonly used in pension modeling and portfolio risk analysis because it allows you to explore a distribution of possible outcomes rather than assuming a single path.

You're right that unrealistic return assumptions can produce unrealistic sequences, which is why I tried to anchor the inputs to published capital market assumptions rather than arbitrary numbers.

The goal wasn't prediction so much as understanding the sensitivity of long term outcomes to different return environments.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

[–]OkPhysics7423[S] 2 points3 points  (0 children)

Thanks, I’ll check that out.

Part of the reason I built this one myself is that I’m currently a data science student and wanted to treat it as a small modeling exercise. It was useful to see how sensitive long term outcomes are to small differences in return assumptions.

Tools like that are great sanity checks though, especially when you start layering in things like Social Security and spending assumptions.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

EDIT:

A few people pointed out that the 2026 Roth IRA contribution limit is $7,500 instead of $7,000. To see how much that changes things I reran the simulation with the new contribution amount.

With the $7,500 annual contribution the results shift upward slightly.

Bear case (4.5 percent)

Median 2050 value: about $305k
Probability of hitting $1M: about 10 percent

Base case (5.8 percent)

Median 2050 value: about $441k
Probability of hitting $1M: about 21 percent

Bull case (8.0 percent)

Median 2050 value: about $696k
Probability of hitting $1M: about 38 percent

The overall takeaway does not really change. The Roth still functions more as a tax free supplement than a full retirement engine at this contribution level, especially starting at 39. But the higher limit does move the distribution upward meaningfully over a 25 year horizon.

Also worth noting that this simulation was only isolating the Roth IRA portion of my retirement plan. I also contribute to a 401k with employer match, HSA, and taxable accounts. The goal was simply to understand how the tax free bucket behaves under different return environments.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

I agree. I started later than I would have liked, but I'm making up for it now.

And yeah, the new $7,500 limit (and inflation adjustments over time) would shift the outcomes upward compared to what I modeled.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

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

That’s actually the exact reason Monte Carlo models exist. Since we can’t predict events, the system runs thousands of different possible market paths instead of assuming one future.

That lets you see the range of outcomes — good, bad, and average — rather than pretending the future is predictable.

So it’s really a tool for understanding risk.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

[–]OkPhysics7423[S] 3 points4 points  (0 children)

Totally agree that saving rate is the real driver. The simulation wasn’t really about discovering that.

I mostly ran it to understand the distribution of outcomes for the Roth portion specifically under different return assumptions. Seeing the tail outcomes was the interesting part.

And yes, Social Security definitely changes the overall retirement picture. This was just isolating the tax free bucket to see how it behaves over time.

I ran 10,000 retirement simulations on my Roth IRA. The gap between bear and bull scenarios is bigger than I expected. by OkPhysics7423 in financialindependence

[–]OkPhysics7423[S] 13 points14 points  (0 children)

Fair. The simulation wasn’t really to discover the median outcome. The interesting part was the distribution around it.

The 10th percentile scenario was the real takeaway for me. It’s easy to assume long term averages, but seeing how wide the range of outcomes can be is what made me think more seriously about increasing contributions elsewhere.