Every forecast, scored a step later.
An entity forecasts the next step from its own view, and the run records the forecast and its error. A trained surrogate predicts further ahead, and says it is a surrogate.

Forecast, then score
A forecast is a field of the run.
Before anything moves, each entity forecasts from what it sees. After the step, the run records what was forecast and the error against what happened.
Half the error of standing still.
The surrogate run in CommandAGI's Drive: a model of the arm and the cube 0.5 s ahead (15 steps, from 3 steps of context), trained on simulated runs of the arm.
run.json title="surrogate arm-half-second" kind=recipe started=2026-11-03T06:12:49.834Z
result: held-out error 0.3629 (normalized RMSE), persistence 0.6855
card.json problem=arm-half-second graph=so101-cube.graph.json reality=simulation context=3 horizon=15Forecasts inside a world
The market's trend misses by 9 cents.
In the Hormuz world at escalation 1.8, the mean absolute error of each oil-price forecast over 120 days (case-studies/predictions/stats.json).
Each sees only its own. A forecast may read only what its entity sees. The validator refuses an equation that reads anything else, by name. A surrogate says so. Every answer of a surrogate carries reality: surrogate. It is never a simulator's evidence, and never physical. Capital forecasts are sealed. The weekly capital forecaster's forecasts are sealed when written, and scored only under a seal that came first.
- the market's trend forecast, mean miss
- $0.09
- households' slow average, mean miss
- $3.09
- the arm surrogate's held-out error against persistence
- 0.36 vs 0.69
Simulated
cloud://global/examples/template-library/worlds/geo-hormuz/world.tsxResultado case-studies/predictions/stats.jsonHerramienta scripts/sites/case-studies.mjs predictions: sim-engine.jsSe ejecutó en This computer (dell-gb10-1)Cuándo Ask what happens next.
Open a graph that declares a prediction problem, pick a run and press predict.