model catalog
One microsimulation, six models that extend it.
The microsimulation says what a family pays and what a reform costs. The six macro models supply what it cannot see — shocks, forecasts, long-run change — and a score can chain them.
The core, and six extensions.
Every extension names where it joins the microsimulation.
Taxes and benefits, for a household or a populationthe core · UK + US · pe-microsim
PolicyEngine’s own engine, and the one behind policyengine.org: the tax-benefit rules as code over enhanced survey microdata, for one household or the whole population. The only member covering both countries.
A selected UK fiscal or macro scenario over 3–5 yearsUK · obr-macro
A transpiled, solvable copy of the OBR’s published macroeconometric model, anchored to the latest EFO: shock a lever, re-solve, and read GDP, consumption and investment against the official path.
score_reform feeds the static costing in through HHDI_ADDFACTORWhat drove UK GDP and inflation at the latest model-data vintageUK · boe-svar
An eight-variable Bayesian structural VAR: named shocks identified by sign and zero restrictions, a decomposition of recent GDP and inflation, and a forward projection with credible bands.
svar_inflation_incidence, experimental)A monetary or fiscal shock in the US over coming quartersUS · frb-us
The Federal Reserve’s FRB/US model — 284 equations parsed from the Board’s own model file — solved around the April 2026 LONGBASE baseline. Pick a lever and a policy rule, read the deviation path.
frbus_shock_incidence, experimental). score_reform refuses itHow US shock responses differ across the household wealth distributionUS · us-hank
A two-asset heterogeneous-agent New Keynesian model (an ABRS 2021 replication): one monetary, fiscal or productivity shock, solved for the whole distribution of households.
hank_shock_incidence, experimental)Work, saving, and capital effects over decadesUK · psl-og
80 overlapping cohorts choose work and saving over their lifetimes. Solve the steady state or the 60-period transition path and read where a reform takes GDP, investment and revenue in the long run.
og+microsim)A UK climate-policy scenario, as deltas against a baselineUK · define-uk
The authors’ ecological stock-flow-consistent model of the UK economy and climate, run unmodified at a pinned commit: one published scenario, read as deltas over 2023–2037.
define_scenario_incidence, experimental)Already have two candidates? Compare their assumptions and tradeoffs.
Every join starts or ends at the microsimulation.
score_reform accepts microsim, obr, og and og+microsim. The other four members connect the opposite way.
What would a reform cost — and what would it do to the economy?score a reform
The pipeline chains two members: the microsimulation produces the static costing from the actual tax-benefit rules, then the OBR emulator returns the second-round effects.
pe-macro score --country uk --reform '{"gov.hmrc.income_tax.rates.uk[0].rate":0.21}' --model obrRead the caveats before the headline: the costing inherits survey-microdata uncertainty, and the emulator’s household-route multiplier is ~0.35 vs the OBR’s published 0.3 for income tax, while its spending multiplier is 1.0000 by construction vs 0.6 — treat macro feedback as sign and order of magnitude. Mechanics on the microsimulation and OBR emulator pages; setup on the Use page.
What a reform does once wages and the capital stock adjustUK · og+microsim
OG-UK solves the reform’s long-run steady state, then its wage and interest-rate changes feed a second microsimulation run, so the distributional result carries general-equilibrium feedback.
--og-payload pipelineHow a macro shock lands across householdsexperimental · four members
The four members that cannot score a reform run the arrow the other way instead. boe-svar, frb-us, us-hank and define-uk each take a macro path in and return distributional incidence through a microsimulation run — all four experimental, and none of them a reform bridge. The row-by-row mapping is in the comparison table.
The routes that run these chains end to end are listed on the Forecasts page.
Seven models, side by side.
| PolicyEngine microsimulation pe-microsim | OBR macroeconometric obr-macro | Bank of England structural VAR boe-svar | Federal Reserve model frb-us | US heterogeneous-agent NK us-hank | Overlapping generations psl-og | Ecological stock-flow consistent define-uk | |
|---|---|---|---|---|---|---|---|
| Question class | What a specific family pays and receives; distributional effects | Selected near-term UK fiscal and macro scenarios | What drove the UK economy at the latest vintage; short-run forecasts | US macro dynamics: monetary and fiscal shocks, quarter by quarter | Distributional transmission of stylized US shocks: who responds, by wealth | Long-run incentives: labour supply, saving, the capital stock over decades | UK climate-policy scenario deltas — nothing quotable today |
| Method | Static tax-benefit microsimulation — direct rule evaluation, no behavioural response | Structural macroeconometric emulator — Gauss–Seidel over 372 equations per quarter | Bayesian structural VAR — posterior sampling with zero and sign restrictions | Large-scale macroeconometric model — 284 equations solved under VAR expectations | Two-asset HANK (Auclert et al. 2021) — first-order sequence-space impulse responses | Dynamic general equilibrium (OLG) — steady-state root-find and transition-path iteration | Ecological stock-flow consistent (E-SFC) — upstream R code run unmodified at a pinned commit |
| Country | UK & US | UK | UK | US | US | UK (OG-UK) | UK |
| Data vintage | UK & US statute; enhanced FRS 2023–24 microdata for UK population runs | OBR Economic and Fiscal Outlook, March 2026 | ONS, BoE and FRED — estimated through 2025Q1, conditioned to the 2026Q1 edge | The Fed's model.xml and LONGBASE database, April 2026 | The published Econometrica 2021 calibration; no data vintage | ONS, OBR and BoE aggregates as calibration targets; OG-UK 0.3.2 | DEFINE-UK 1.1, April 2026, at pinned commit 846081a |
| Microsim connection | Is the microsimulation — every bridge starts or ends here | Static costing in, macro feedback out — score_reform via HHDI_ADDFACTOR | CPI path → benefit-uprating incidence (svar_inflation_incidence, experimental) | Wage/hours path → employment-income incidence (frbus_shock_incidence, experimental) | Wage/labor IRFs → employment-income incidence (hank_shock_incidence, experimental) | Two-way: statute in via PE tax functions; long-run changes back into a second microsim run (og+microsim) | Scenario income deltas → employment-income incidence (define_scenario_incidence, experimental; hosted via define_payload) |
| Reform scoring | Yes — a PolicyEngine parameter + a new value, applied directly to households | Yes — shocks to exogenous model variables; static-costing bridge from PolicyEngine reforms | No — the baseline/conditioning member: it reads the economy reforms are scored against | No — shock experiments only; no reform bridge, so score_reform refuses model="frbus" | No — stylized shocks only; the labor tax is endogenous, so score_reform refuses model="hank" | Yes — a PolicyEngine policy translated into estimated tax functions | No — no reform bridge; score_reform will not accept it |
| Out of scope | GDP, inflation, interest rates, or macro feedback | Arbitrary reform incidence; borrowing; capital spending (CGIPS is dead) and corporation-tax magnitudes (TCPRO converges slowly: 12 quarters is ~40% of its plateau) | The causal effect of a specific statutory reform | PolicyEngine reform effects, anticipated-policy paths, or MCE scenarios | Forecasts, detailed tax reforms, or nonlinear/state-dependent dynamics | A short-run forecast or independently validated reform effect | Levels, forecasts, reform scoring; microsimulation incidence (planned, post-validation) |
| Run surface | Hosted | Hosted (CLI, MCP, Python API) | Hosted (CLI, MCP, Python API) | Hosted (CLI, MCP, Python API) — raw shocks only | Hosted (CLI, MCP, Python API) — stylized shocks only | Local only | Local CLI (pe-macro define-scenario); hosted MCP tools return run instructions |
| Typical runtime | Sub-second per household; minutes for population runs | Seconds to minutes per scenario | Minutes per full estimation + identification run | Seconds to minutes per simulation | ~18s cold per variant (cached); instant warm | ~17+ min per steady-state solve (two per score); hours for transition paths | Instant from the cached pinned run; a fresh upstream run takes tens of minutes in R 4.3 |
Compare two models
How each model is validated.
The seven models support different kinds of check, grouped below into four classes with one headline each.
| Model | Verification class | What it is checked against | Headline result |
|---|---|---|---|
| pe-microsim | Checked against implemented legislation | Implemented UK and US legislation, rule by rule | Household maths exact; population adds survey error |
| obr-macro | Replication with a published anchor | March 2026 EFO; HMRC ready reckoner; ONS outturns | Anchored GDP 0.15% MAPE — by construction; free-running, 4.48% |
| boe-svar | Replication with a published anchor | Brignone & Piffer (2025); ONS outturns | FEVD 37.4% / 42.3% vs the paper's ~40% / ~50% — CPI ~8pp short |
| frb-us | Replication with a published anchor | The Fed's pyfrbus on an identical shock; published multiplier ranges |
Shocked paths match pyfrbus to 1.4×10−8, the Fed's own release-to-release gap; baseline tracking is an identity |
| us-hank | Replication with a published anchor | Auclert et al. (2021), via the authors' toolkit | β solves to 0.976274 vs the paper's 0.976; Y, K and r are imposed inputs, IRF magnitudes unvalidated |
| psl-og | Calibrated counterfactual — no ground truth | ONS/OBR aggregates as targets, not a validation set | Targets met by construction; no ground truth |
| define-uk | Partial replication — macro block and scenario design-gate pass | Manual Table 4; ONS outturns, OBR EFO, DESNZ emissions — no scenario figures are published | Baseline 2025 growth 4.66% vs a 1.31% ONS outturn — deltas only, never levels |
The same questions, answered by other shops.
Imposed matches are anchors, not validation. The stronger evidence is out-of-sample forecasts, independent costings, and agreement with another implementation.
| Question | Ours | Theirs | How comparable |
|---|---|---|---|
| Long-run effect of a 1pp basic-rate rise (psl-og) | Not yet produced — the committed run is a transition path to 2030, not the long-run steady state WP 22 reports | OBR Working Paper 22, Table 5.1: GDP/person −0.1%, labour supply −0.2%, productivity +0.1% | Future benchmark — same scenario; the target a later run will be judged against, not a match claimed today |
| Yield of a 1p rise in the basic rate, 2026–27 (obr-macro + pe) | £6.46bn static | HMRC ready reckoner (June 2025): £6.9bn, rising to £8.2bn by 2028–29 | Adjusted — −6.4% in year one, below HMRC at every matched year; HMRC is post-behavioural on administrative data, ours static and survey-based. A benchmark, not a validation |
| Government-purchases multiplier (frb-us) | 0.72 in year one (inertial Taylor rule); 0.90 in year two with the funds rate fixed | Ramey (JEP 2019): government-purchases multipliers sit "in a surprisingly narrow range of 0.6 to 1" | Adjusted — both sit inside Ramey's range, but it pools estimates across horizons and monetary regimes, so neither of ours is matched to it. Against the pegged-rate cross-model range (1.1–1.2), our 0.90 sits below |
| Income-tax multiplier (frb-us, US) | 0.22 → 0.32 over years 1–2 | OBR's published UK assumption: 0.3 for income tax and NICs | Loose — different country and model class |
| Forecast error, 2024Q3 onward (boe-svar) | RMSE 0.32pp (GDP growth, CPI) from one frozen 2024Q2 origin; the 2025 CPI hump missed by up to 0.6pp. Over 49 origins, no skill against a drifting random walk | OBR FER (July 2025): one-year GDP growth under by 0.4pp on average; BoE MPR (Aug 2024): late-2025 CPI ~2.4% modal vs a 3.8% outturn (~1.4pp miss) | Adjusted — different statistics, matched vintages; full diagnostics: boe-svar validation |
Read the source literature and replication notes.
Six working papers (full PDFs) and one feasibility note — one document per model.
Statute as code for the UK and US: why household arithmetic is exact, population estimates are not, and how the static costing benchmarks against HMRC.
read →How the OBR's model was transpiled and anchored to the EFO — and why the anchored fit is not forecast skill.
read →Replicating Brignone & Piffer (2025): the identification, the FEVD shares, and the forecast diagnostics against naive benchmarks.
read →Parsing and solving the Fed's FRB/US model, and matching pyfrbus on shocked paths at its own noise floor.
read →The OG-UK calibration, tax-function estimation, and the limits of a model with no ground truth.
read →The open US HANK landscape, and why the Auclert et al. (2021) toolkit was the foundation to build on. Not a replication write-up — that gate is on the us-hank validation page.
read →The authors' unmodified code at a pinned commit, the Table 4 gate, thirteen pinned manual defects, and why only deltas are served.
read →