How calculations work
How simulations work
How the app builds simulated futures from actual historical market returns and inflation, the other simulation methods, how success is defined, and how results stay consistent between runs.
A simulation runs your whole plan many times, each with a different path for market returns and inflation. The share of paths where the plan works is your chance of success. The spread of outcomes shows your risk.
The default: reshuffled history
New plans use actual historical market returns and inflation, about a century of annual US data. Each simulated future is built from random blocks of consecutive years:
- Pick a random starting year in the history.
- Take that year and the next four, a five-year block. Each year's stock returns, bond returns and inflation stay together.
- Pick another random block, and repeat until the future is as long as your plan.
This is a block bootstrap. Keeping years together preserves patterns that independent random draws miss: runs of bad years, persistent inflation, and years when stocks and bonds fell together.
Each asset class in your plan is linked to a historical series. US stocks use US stock history and bonds use US Treasury bond history. International stocks use the returns of non-US developed markets from 1975 on, in US dollars with dividends reinvested. That history starts in 1975, so earlier years use US large-company stocks. Outlook says so.
You can change the block length from 1 to 20 years.
Other methods
| Method | How each year's returns are made |
|---|---|
| Every historical start year | History replayed in order, one future per starting year. Futures that run past the last year of data wrap around to the first. |
| Random (lognormal) | Drawn from a lognormal distribution using your expected returns, volatilities and correlations |
| Random (normal) | Drawn from a normal distribution, with the same inputs |
| Random with fatter tails | Drawn from a Student's t distribution, which has more extreme years than a normal one |
| Fixed average returns | Every year earns the expected return. One future. |
With the random methods, inflation is constant at your assumption.
What counts as success
By default, a future succeeds if the plan can pay every expense and tax bill in every month until the end of the plan. It fails the first month that cash and investments, including any property you've marked "sell if needed," can't cover what's due. Cash, taxable, pre-tax, Roth and HSA accounts all count.
You can make the definition stricter:
- Spending stays above a floor: a future also fails in any year spending falls below a share of planned spending.
- You leave a minimum estate: a future also fails if the ending net worth, in today's dollars, is below an amount you set.
How many futures
Outlook runs 1,000 futures by default. You can choose more or fewer, up to your plan's limit. Some screens use fewer for speed: the Dashboard, scenarios, strategies and What if use 500, and improvements use 300.
Consistent results
Each future's random path depends only on the seed and the future's number. So results don't change when the work is split across your device's processor cores, and a rerun with the same seed gives the same answer.
Comparisons use the same futures. When you compare scenarios, strategies or improvements, each version faces exactly the same simulated markets, so differences come from the change, not from luck.
Percentiles and single futures
Range charts show the 5th, 10th, 25th, 50th, 75th, 90th and 95th percentiles for each year. To look inside one future at a percentile, the app picks the future whose ending inflation-adjusted value is closest to that percentile.
Known simplifications
- Each year's return is spread evenly across its months, so swings within a year are understated.
- Historical data reflects one country's past. Future returns may be lower or higher.
- The default market assumptions are planning defaults, not forecasts: 8.5% a year for stocks and 4.5% for bonds before inflation, with 2.5% inflation. They drive the random methods and the average path. The history-based methods use the historical returns instead.