Open source · agent-based · calibrated to the U.S.

A telescope for the economy.

We are building a digital twin of the economy: households, firms, banks and governments simulated one quarter at a time, in the open, and tested against the best forecasting models we can find.

68industries
6agent classes
500paths / forecast
100%public data
Try a shock
Every payment is someone else's income. Hover a node to see what flows in and out.
Illustration of the model's flows, not a forecast
What we're building

Three things, and they
only work together.

Your spending is someone else's income; your loan is someone else's asset. A digital twin keeps every one of those ledgers at once, then runs the world forward. Making that trustworthy takes a model, a test, and a way to look inside.

The model

An agent-based model of the United States. Every firm, household and bank carries its own income statement and balance sheet; markets clear by search and matching, so shortages and rationing are things you can watch, not assume away. Forked from the Bank of Italy's BeforeIT.jl and rebuilt on public data: BEA, BLS, the Fed.

US_BeforeIT.jl on GitHub · Julia · Apache-2.0

The test

Forecasts from 61 quarterly origins since 2010, 500 free-running paths each, scored on identical cells against nineteen other columns: naive rules, autoregressions, a Bayesian VAR and two DSGE models re-estimated at every origin. No behavioural parameter ever sees a forecast error. Every claim ships with its significance test and its caveat.

The forecast report · the paper

The instrument

A simulation is a black box that emits indicators, until you can open it. The Economy Complexity Explorer zooms from the whole economy to a sector to one firm's ledger: who paid whom, for what, and how it added up. Five prototype lenses so far, all rendered from the same saved runs.

apps/web in the repo · the lenses

How it runs

One quarter, seven moves.

The engine runs fifteen phases per simulated quarter. Here they are in seven moves. Nothing is solved for an equilibrium: agents act, markets match, and the accounts settle.

The same six agents
Evidence

What it says, and
how well it does.

Numbers below are read straight from the committed result files. They are a diagnostic on revised data, not a real-time track record. We would rather show you the caveats than hide them.

The current outlook

500 free-running paths from the 2026Q1 origin · unscored, no realised truth exists yet
realisedensemble median25–75%5–95%

The width of the growth fan is model dispersion, not simulation noise, and in backtest its 90% band covers about what it should. The inflation band is known to be too narrow; read it as a lower bound on uncertainty.

Against the field

Weighted RMSE ratio vs a VAR(1), real GDP growth + GDP-deflator inflation, 61 origins 2010Q2–2025Q2 · lower is better

Nine of the twenty scored columns. The repaired model tops the field in all three sample tracks and is significantly better than both DSGE columns; its edge over the simplest statistical benchmarks is marginal, and we say so. Its interval coverage on inflation still fails our own bar.

−2.75pp

Unbalanced books bias growth

The published US input–output tables do not balance once bridged across valuation bases. Left unreconciled, the opening accounts silently drained 2.75 points from growth, mostly through one-sided rationing. Accounting first, behaviour second.

0.0007

State beats structure

Swapping the entire 2024 industry structure for 2017 or 2012 moved the headline score by at most 0.0007. A frozen opening labour market cost a whole target. Getting the starting state right matters more than the wiring diagram.

3findings, 1 block

Expectations are load-bearing

Exploding investment booms, too-narrow inflation bands and a lost pandemic-track score all trace to how agents look ahead. Heterogeneous, survey-disciplined expectations are next on the list.

Experimental · conditional scenario · lives on a branch
Stress test

Could it have seen 2021 coming?

Condition the twin on the lockdown, trade, fiscal and monetary shocks that actually happened, give it the demand-pull pricing rule from the Bank of Canada's CANVAS model, and start it in December 2020. It produces the inflation surge that contemporaneous official projections put near two per cent. Give the same shocks to cost-push-only pricing and you get 1.3%.

Two-year rise in the consumer price level from the December 2020 information date. Known defects are registered: wage indexation has no real-wage brake, and the policy rule never sees the model's own inflation. A separate paper, when it is ready.

Consumer price level, two years from Dec 2020
+12.1%
Realised
+10.9%
The twin
+3.7%
Fed projection
From June 2021 instead: 5.5% for calendar 2021 against 5.8% realised and 3.4% projected. Mechanism split for 2021: demand-pull first, imported costs approximately nil, the reverse of the Canadian weighting.
Scale

How big is the twin?

One modelled firm stands for many real ones. Slide the scale to see what each rung buys and what it costs. Getting to one-to-one is the point of the project, and most of the engineering.

1 : 100 0001 : 10 0001 : 1 0001 : 1
Firms130
People2 831
Compute, serial on a laptop8ms / quarter

one dot = one firm

Step costs measured in Julia 1.10 on an Apple M-series laptop; 99% of a step is the goods market's search and matching. A batched Rust backend for that one market is being explored.

Roadmap

A ladder of claims,
each with its own bar.

We never claim the twin is better in general. Each rung has a preregistered protocol, the strongest challenger able to produce the same object, and an honest-failure clause: a lost rung is published with the same tables as a won one.

C1
Aggregate point forecastsGDP growth and inflation against statistical models and recursively re-estimated DSGEs
Won on revised data
C2
Aggregate densitiesSharpest CRPS in the field; interval calibration on inflation still fails
Partial
C3
Full target coverageUnemployment level, PCE prices, payrolls: needs own-year opening states and measurement bridges
Open
C4
Sectoral forecasts68-industry output and prices against sector VARs and factor models
Open
C5
Micro descriptionFirm sizes, entry and exit, job flows, household distributions
Gated on scale
C6
Shock propagationSectoral pass-through against network econometrics
Open
C7
Real-time skillPseudo-real-time and prospective forecasts on vintage-clean data; the only rung that would justify calling this a forecasting system
Open
Next: heterogeneous expectationsDispersion calibrated to forecaster disagreement, never to forecast errors.
Next: opening statesOwn-year labour arrays, counts and benefits for every origin; PCE and payroll bridges.
Next: origins back to 2006Puts the financial crisis inside the test window and adds fourteen origins.
Next: the scale ladderProduction scale chosen on convergence evidence alone, before any density claim.
Then: other economiesThe upstream model ships Austria and Italy; the calibration pipeline is built to be reused.
Then: physical couplingEnergy, supply chains and climate as companion models feeding the same ledgers.
Then: one to oneEvery employer firm as an agent, households at neighbourhood resolution.
Always: the firewallNo behavioural or structural parameter is ever fitted to a forecast error.
The instrument

Five ways to look at one economy.

Prototype lenses over the same saved runs, being unified into a single explorer with deep links and semantic zoom. Exact traced transactions, model-equation flows and derived estimates are always labelled separately.

Also in the lab

Smaller worlds, same idea

Side projects that test pieces of the vision at a scale where you can see every agent.

A village housing market

Every household owns one house on a small grid, carries a full balance sheet, and decides whether to move, buy or sell through a language-model decision module with hard budget and mortgage constraints. Watch prices, turnover and inequality emerge month by month.

Personal finance as a flow diagram

Draw your income, expenses, assets and debts as nodes on a canvas, then ask an assistant to project them years forward. The same stock-flow thinking as the twin, for one household at a time.

PlanwithFlow on GitHub

Contribute

This will not come out of
one lab, or one company.

The core is open source on purpose. Simulation software that won in engineering did so by making the smallest useful claim, proving it repeatedly, then expanding. We want collaborators who like that discipline.

EngineeringJulia and Rust engineersNinety-nine per cent of a step is one market. Make it fast without breaking the seed stream, and take the engine towards one-to-one scale.
EconomicsMacro and behavioural economistsThe labour block, heterogeneous expectations, capital accumulation, the policy rule. Every change enters through a matched-seed ablation and never touches a forecast error.
DataData engineersBEA supply-use tables, BLS, the Fed's Z.1, FRED. Vintages, bridges and opening states for every origin back to 2006.
DesignVisualisation and front-endTurn a black box that emits indicators into an inspectable economic world: semantic zoom from the economy to one receipt.
ReviewScepticsRead the paper adversarially. Reproduce a number from the committed files. Tell us where the claim outruns the evidence.
PartnersPeople with a repeated, expensive decisionStress tests, credit, regional labour markets, supply chains. A narrow question with observable feedback is how a twin earns trust.