Try this:
How much history should stay together?
Set Simulations to 2,000. Compare block sizes 1, 5, 10, and 30 with a 30-year horizon and the same seed. Inspect the preserved sequences. At B = 30, compare the simulated success rate with the exact historical-window fraction in the Success rate view. Larger blocks can raise or lower success; the outcome depends on the market, window, and scenario.
How this model works
This is a moving-block bootstrap of one market. With N consecutive historical years and block size B, there are N − B + 1 overlapping candidate blocks. Each start has equal probability, with replacement. Returns stay chronological within a block; dependence breaks between blocks. There is no wraparound. The final block uses only the years that fit the horizon. B = 1 reproduces the annual bootstrap.
Endpoint years appear in fewer candidate blocks than interior years. This edge effect can change the effective return distribution, especially for large B. Blocks preserve both loss clusters and rebounds; a higher success rate alone does not prove mean reversion. When B equals the retirement horizon, every path is a sampled rolling historical window. The app also enumerates all eligible windows to show their exact success fraction. These windows overlap and are not independent historical evidence.
Withdrawals occur at the beginning of each year and stay fixed in nominal currency units. They are not inflation-indexed: with positive inflation, purchasing power declines over time. There are no contributions, taxes, or fees. “Success” means the ending balance is strictly positive; paying the final withdrawal and ending at exactly zero counts as depleted. Zero is absorbing.
Increasing Simulations reduces Monte Carlo sampling noise; it cannot fix return assumptions or create more historical evidence.
Each path has its own seeded Mulberry32 stream. Changing the simulation count or horizon preserves the earlier paths and years when other settings are unchanged.