Methodology

How we calculate what your portfolio could be worth

Every projection in Stockveil comes from the same engine, and this page describes it completely. If something here doesn't match a number you see in the app, the page is wrong and we want to know.

It is a simulation, and no AI is involved in the maths

The projected dollars are produced by a deterministic simulation with a fixed random seed. Run it twice on the same portfolio and you get identical numbers to the cent. Nothing is trained, learned, or generated by a language model.

AI enters in exactly one place, clearly labelled where it appears: writing the plain-English commentary about the numbers, using your own API key. If the AI is unavailable, the numbers are unchanged — only the prose disappears.

There is no machine-learning price model anywhere in Stockveil. We think claiming one would be the dishonest part, not the missing part.

Where the ups and downs come from

We build 10,000 possible futures. Each one is assembled by drawing whole calendar years out of your funds' real total-return history, at random, with replacement — and replaying that year's twelve months across every holding at once.

Drawing whole years jointly matters. It keeps the way your funds move together intact: when the simulation draws 2008, your stock fund and your bond fund each do what they actually did in 2008, in the same trial. That year's real inflation rides along too, so the relationship between returns and inflation survives. And because the prices are total-return prices, dividends and each fund's expense ratio are already inside every number.

A fund can only be resampled over years it has existed. When one holding is much younger than the rest and would pin everybody to a handful of recent years, we set small positions aside to lengthen the shared window — never more than 10% of the portfolio, and always named in the results.

Where the middle comes from — and why we move it

Here is the honest problem with resampling alone. Most index funds have only existed since roughly 2012. That window contains no dot-com bust, no financial crisis, no lost decade — it is one of the strongest stretches in market history. Letting it set the average for the next thirty years would flatter you badly; in our own case it was producing ~12.5%/yr where a plan-level projection said ~7%.

So we re-centre. Each fund's resampled history is shifted so its long-run growth rate lands on a forward-looking anchor: half the long-run historical median for that asset class at that horizon (the 1928–2025 record), half the published capital-market assumptions of major forecasters for the decade ahead — JPMorgan, Schwab, BlackRock, Vanguard and Research Affiliates, currently about 5% a year for US stocks and 4.7% for bonds.

The shift is a constant in log space, which is a precise way of saying it moves the centre and nothing else: volatility, the correlation between your funds, the sequence of good and bad years, and the fat tails all come through untouched. Keep the dispersion, take the mean from forward-looking assumptions — this is the standard approach in financial planning, and Fidelity's published methodology goes further in the same direction, modelling asset-class benchmarks back to 1926 rather than the specific securities in your account.

One consequence worth stating plainly: the range is still only as deep as your funds' own history. If your holdings have never lived through a lost decade, our "bad" case is politer than history can actually be. Extending the sample by splicing each fund onto its asset-class index is on our roadmap.

What Good, Average, Below average and Bad mean

We line up all 10,000 endings from worst to best and read off four spots. Bad is the 10th percentile — 9,000 futures did better. Below average is the 25th. Average is the 50th, the exact middle. Good is the 90th — only 1,000 did better. Each card shows the ±5-percentile interval around its centre, so you read a range rather than false precision.

These labels are deliberately conventional. Fidelity's retirement tools call their 10th-percentile case "significantly below average" and their 25th "below average"; ours line up, so a number here is comparable to a number there.

Two habits worth building: plan around Average, but make sure your life still works at Bad. If the Bad number would force you to sell at the bottom, the mix is too aggressive no matter how good the median looks.

Why two engines, and when each is used

Projecting what you hold uses the simulator above — real funds, real history to resample. Projecting a target mix — a plan you haven't bought yet, a workplace 401(k) menu, the rebalancing tool's "after" column — has nothing to resample, so those use the capital-market percentile bands directly.

Both are centred on the same anchor, so their averages agree closely. Where they differ is at the edges, and that difference is meaningful: the simulator's good and bad cases are shaped by what your particular funds have really lived through.

What it cannot know

Your future contributions beyond what you type in. Tax — every figure is pre-tax and in nominal dollars, with a separate "buys what X buys today" line for real purchasing power. Fees outside the funds themselves, such as advisor or platform charges. Anything that has never happened before.

And the obvious one: the future is not a reshuffling of the past. This is a disciplined way of describing uncertainty, not a forecast, and it is educational analysis rather than individualized financial advice.

Questions about a specific number? Every projection surface in the app carries the short version of this page in its tooltip, and the Monte Carlo simulator discloses every input behind every figure it shows.

How Stockveil works →