A confidence score
Built from the width of the ensemble, the length of the horizon, how much of the spread comes from parameters, and whether any historical episode sits close to the scenario.
Everything runs in your browser. Nothing you build is sent anywhere.
A simulator that will not tell you where it is weak is a toy. This is the part of the product most tools leave out.
Built from the width of the ensemble, the length of the horizon, how much of the spread comes from parameters, and whether any historical episode sits close to the scenario.
Shock uncertainty is the world being unlucky. Parameter uncertainty is the model not knowing a coefficient. They are reported separately, because only the second one can be narrowed by better research.
Every parameter is moved twenty percent either side of its central value on an otherwise identical run, and the result is ranked by how far it moved the answer.
The scenario is scored on nine axes and compared with eighteen real episodes scored the same way, from the 1930 tariffs to the 2021 chip shortage. When nothing is close the page says the model is extrapolating.
Each lever with its window, plus the structural assumptions: build lags, expectations anchoring, retaliation probability, annual steps and the absence of a real financial sector.
The model started from a past year with that year's output, population, inflation and unemployment from the World Bank, run forward with no lever played, and scored against what the World Bank recorded next: how often the record fell inside the 80% band, whether the middle beat carrying the start year forward, which way it leaned, and the same again without the pandemic years. The structure of each economy stays as today's record, which flatters the model, and the tab says so beside every score.
Growth, inflation and unemployment are built inside the engine as a sum of named terms. What the interface shows is that sum, exactly, and any term can be opened to see what drove it. A model that cannot do this can only be believed; this one can be checked.
A leader taking an unexpected call at three in the afternoon is outside anything a state variable can carry.
A bank run or a two week panic is invisible unless it leaves a mark on the year.
Credit enters through a risk premium and a crisis hazard, not through balance sheets.
It gets the direction and rough size of a trade shock, not a specific firm's supply chain.
Errors in the base year propagate through every year after. The monitor marks which rows are which and the refresh replaces what it can.
The ensemble shows the consequences of that uncertainty. It does not remove it.
Use it to find the shape of a problem, the direction and rough size of an effect, the second and third order consequences you had not thought of, and the assumptions your view depends on. Do not use it to produce a number for a slide with no range attached to it. The range is the answer.
Two hundred and thirty eight country records, the bilateral trade network that joins them, the alliance and bloc memberships, and the goods each one produces and needs are flattened into typed arrays. This happens once. Every run after it reuses the same compiled world, which is why the second run is faster than the first.
Every coefficient the literature argues about is drawn once per future from its own range: how much a tariff passes into prices, how fast expectations re-anchor, how strongly output responds to a rate. A future is not the same model run with different luck, it is a slightly different model meeting different luck.
A year at a time, for every country at once. Growth, inflation and unemployment are each assembled from named terms rather than solved as a black box, and the terms are kept, which is the only reason the causes page can exist at all.
Recessions, energy spikes, conflicts and financial stress arrive on their own hazards. Two futures with identical levers diverge because one drew a bad decade and the other did not, and the seed is what makes that comparable between runs.
Two hundred and fifty futures are reduced to quantiles at every year, clustered into families, decomposed into what the parameters explain and what the shocks explain, and checked against eighteen historical episodes. Only then does anything appear on screen.
The confidence figure is computed last, from the band width, the horizon, the parameter share and the nearest analogue. It is a deduction from a hundred with every deduction named, so a low score always says which part of the run was weak.
Because the data underneath is annual. A quarterly model built on annual national accounts would be inventing three quarters out of four, and it would look more precise while being less true. The timeline reads a year down to a day, but a sub-annual reading is an interpolation of an annual step and the interface says so.
It is where the quantiles stop moving materially between runs on the same seed. More futures cost time on your laptop and buy a third decimal place that the underlying coefficients do not support. The expert panel lets you raise it if you disagree.
Two runs on the same seed meet the same shocks in the same years, so the difference between them is the levers. Two runs on different seeds differ by luck as well, and no amount of arithmetic can separate the two afterwards. The comparison page warns you when the columns were not run on one seed.
Because a distribution of futures conditional on a policy that was not enacted cannot be scored against anything. The model with nothing changed can be, and is: the Reliability tab starts it from a past year and scores it against the World Bank record, and prints the result whichever way it comes out. That is a test of the bands and the middle, not an accuracy figure for a scenario, and the confidence score is still the claim about the run in front of you.
The coefficients come from published elasticities with their published ranges, not from a regression on the last ten years. A model fitted to the recent past performs beautifully on the recent past and badly on anything that has not happened yet, which is the only case this is for.
Partly speed, mostly honesty. Nothing you build is uploaded anywhere, so a scenario about a company, a border or a policy that is not public stays on your machine. It also means the arithmetic is inspectable: the whole engine is one file you can read.
A model that reports one number is claiming a precision it does not have. A model that reports a range and names what the range is made of is telling you what it actually knows.
Measured. It comes from World Bank open data where a value exists for that country and that indicator, or from a curated record written down here by hand with the year it was checked. The monitor marks which is which on every row, and the download carries the marking with it.
Modelled. It is the median of two hundred and fifty futures, not a forecast, and the band around it is the part worth reading. Nothing after the base year is an observation of anything.
Derived. Seven weighted terms, with the weights published on the page and summing to one, over measured and modelled inputs. Clicking the index anywhere in the instrument opens its own arithmetic.
Derived from measured. The elements are published by CelesTrak and the position is propagated in your browser by the standard near-earth model. Nothing about a live feed enters the simulation: the map and the model are two different things on one screen, and the interface never mixes them.
Written by the instrument from the run in front of it, deterministically, with no model provider involved unless you have configured one. The same run always produces the same words, which is a property a language model cannot offer.