open-source macroeconomic simulation

A reform moves every price.
We model the whole economy's answer.

macromod is a suite of macroeconomic simulation models for scoring public policy — tracing a reform's effect on GDP, investment, consumption, revenue, and debt — from an overlapping-generations model to an emulator of the OBR's own forecasting model to a replication of the Bank of England's structural VAR, improved in the open.

every point above is a cohort of households · brightness ∝ economic weight

01 — the idea

From static scoring to the full economy.

Microsimulation tells you who pays what the morning after a reform. But people respond: they work, save, and invest differently, firms adjust capital, wages and interest rates move, and the revenue estimate moves with them. Most published policy scores stop before that second act — or bolt it on with a single hand-picked elasticity.

macromod makes the second act a model, not a fudge factor. Each model in the suite is a structural macroeconomic engine that takes a policy change and solves for the economy's response — changes in macroeconomic aggregates (GDP, investment, consumption), wages, interest rates, and tax revenues over time. Different models bring different machinery: a general-equilibrium overlapping-generations engine for the long run, an emulator of the OBR's own equations for near-term fiscal multipliers, and a Bayesian structural VAR that reads the current state of the economy in structural-shock terms.

02 — the models

One suite, many lenses on the same economy.

Different questions need different macro machinery. Every model in the suite scores the same PolicyEngine reform objects and reports the same real-world quantities, so results are comparable across model classes — and every model gets its own page: a 30-second explainer, the method, and the calibration evidence.

overlapping generations · OBR macroeconometric · UK structural VAR · more to come

03 — the pipeline

Statute in, economy out.

A reform is a policy change, not a stylized wedge. How it enters depends on the model. The overlapping-generations engine takes a PolicyEngine policy object — actual tax-and-benefit parameters — runs it through PolicyEngine's UK microsimulation, and fits tax functions to the resulting effective and marginal rates, so it sees the reform's true shape across the income and age distribution. The OBR emulator takes a shock to one of its exogenous variables — a spending change, a rate change.

Both then solve for the response and report the deviation from a baseline anchored to official data — ONS, OBR, and Bank of England national accounts for the OLG model; the OBR's Economic and Fiscal Outlook for the emulator — so a result is always relative to current forecast, never a raw level to misread. The structural VAR plays a different role: it doesn't score reforms (yet) but reads the state the economy is in — which structural shocks are driving GDP and inflation right now — before you simulate changing it.

04 — outputs

Real-world quantities, not model units.

Every run maps back to current-price national-accounts aggregates. A steady-state solve answers the long-run question; a transition path gives the fiscal-year-by-fiscal-year profile a budget process needs.

aggregates 6 GDP · consumption · investment · government · revenue · debt
age cohorts 80 in the OLG household block
horizon 60years transition path to steady state

Built in the open. Read it, run it, contribute.