model 06 — tax-benefit microsimulation · pe-microsim · UK · US · hosted
Calculate taxes and benefits.
Compare current law with a reform for a UK or US household, or estimate population-wide revenue and distributional effects.
Rules, entities, and a dependency graph.
Four steps, from statute encoded as a variable graph to the survey microdata population runs rest on.
Statute as a dependency graph
Variables and parameters
Every quantity — an allowance, a taper, a means test — is a variable with a formula and dated parameters. Asking for one variable resolves the graph beneath it, so a net-income figure comes from the statutory chain, not an approximating schedule.
Entities
Variables attach to entities, which differ by country — UK: three (person, benefit unit, household); US: six (person, tax unit, SPM unit, family, marital unit, household) — because US programmes are assessed on differently drawn units.
Reforms and reproducibility
One reform format
A reform re-dates a parameter and re-resolves the same graph, so the household and population APIs take reforms in the identical format — a flat dict of parameter path → new value.
Version-pinned releases
Each release pins the country-model and dataset versions it certifies, so a published estimate traces to the exact bundle that produced it.
Survey microdata, enhanced
Two modes, two data needs
Household calculations need no data — the inputs are the ones you type. Population results run the same rule graph over a representative survey: for the UK the enhanced Family Resources Survey (currently the enhanced_frs_2023_24 vintage), for the US the Current Population Survey.
Imputation and reweighting
The UK enhancement imputes under-reported incomes and reweights the survey so aggregates better match administrative totals; the resulting microdata is distributed via a gated Hugging Face repository (policyengine/policyengine-uk-data).
What rests on the data, and who consumes it
Inherited error
Population estimates rest on survey data, so they inherit sampling error and imputation and ageing assumptions in a way a household calculation does not — consequences set out on the validation page.
Feeding the suite
This same microdata is what the OLG model consumes to estimate its tax functions, and the static costings it produces are what the OBR emulator takes as the direct effect.