Portfolio Monte Carlo Lab

Stress-test a long-term portfolio plan across thousands of reproducible simulated return paths, with optional changing return/risk assumptions, dated spending goals, and future contributions.

Set the simulation assumptions

Enter the return and volatility assumptions you want to test. Grizzly Bulls does not infer an expected return from your holdings or treat these inputs as forecasts.

Starting balance before the first simulated month.
Use a positive number for contributions or a negative number for withdrawals.
Whole years from 1 through 60.
Your starting modeling assumption, not a Grizzly Bulls forecast.
Starting annualized standard deviation assumed by the simulated return process.
Optional. Adds a today's-dollar view and can inflate scheduled cash-flow events.
Optional. The same dollar target is tested in nominal and today's-dollar terms when inflation is supplied.
Use the same whole-number seed to reproduce the same simulated paths.

Return & volatility glide path

Optional. Linearly transition from the starting return and volatility assumptions above to a later-stage pair over a period you choose. This changes model parameters only; it does not infer holdings or an asset allocation.

The current simulation keeps one return and volatility assumption for the full horizon.

Dated goals & cash flows

Add up to 8 named annual events. Positive amounts add capital; negative amounts model spending. Repeated events occur once per year starting in the selected year.

No dated goals or one-off cash flows are included in the current simulation.

5,000 paths · monthly return steps · end-of-month base cash flow · scheduled events at year-end

Modeled outcome range

Seed 1729 · 5,000 paths · 20 years

10th percentile ending value
$407,020
Median ending value
$769,750
90th percentile ending value
$1,516,135
Nominal target probability
31.5%
Portfolio depletion probability
0%
Median max drawdown
34.9%
90th percentile max drawdown
50.9%
Portfolio value percentile bands from the 10th through 90th percentiles over the selected time horizon.$0$409.4K$818.7K$1.2M$1.6MNow5y10y15y20y
Shaded bands show the 10th-90th and 25th-75th percentiles across 5,000 seeded simulations. The center line is the median simulated portfolio value at each year.
10th-90th percentile25th-75th percentileMedian

Ending-value percentiles

PercentileNominal ending valueToday's-dollar ending value
10th$407,020$248,392
25th$542,623$331,147
50th$769,750$469,756
75th$1,111,410$678,261
90th$1,516,135$925,253

How the simulation works

Each path uses independent monthly lognormal returns. The model calibrates each monthly step so the return assumption in effect for that month is the expected one-year growth rate and the volatility assumption is annualized standard deviation. The fixed monthly contribution or withdrawal is applied at the end of each month.

When the optional glide path is enabled, the starting return and volatility assumptions remain in effect before the selected start year. From the first through the final month of the selected transition span, both assumptions move linearly toward the later-stage values you entered, then remain at those later-stage values. This is an assumption path, not an inferred asset-allocation glide path or a recommendation to reduce risk.

Scheduled events are applied at year-end after that month's regular cash flow. Positive scheduled amounts are added first. Spending events due in the same year are then tested as one combined requirement, so funding does not depend on the order in which rows were entered. An unfunded spending year sends the modeled balance to zero rather than creating borrowing.

An inflation-adjusted scheduled event grows from its entered amount using the same inflation assumption as the today's-dollar view. The fixed monthly cash flow remains nominal unless you change it manually; this tool does not silently inflate every contribution or withdrawal.

Maximum drawdown is measured on a separate return-only index that follows the same simulated returns but excludes cash flows. That keeps contributions, withdrawals, and dated goals from being mislabeled as investment gains or losses.

These are model outputs from your assumptions, not market forecasts or guarantees. Changing the expected return, volatility, glide path, cash flows, or horizon can materially change the modeled distribution. Changing the seed changes the finite simulation sample while keeping those assumptions the same. This tool does not recommend an allocation or infer what return you should expect.