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.

methodology

Rules, entities, and a dependency graph.

Four steps, from statute encoded as a variable graph to the survey microdata population runs rest on.

1

Statute as a dependency graph

Request a variable, resolve the graph beneath it dated parameters allowances, tapers, rates household inputs the ones you type variables formula + dated parameters, attached to entities net income statutory chain entities: UK 3 (person, benefit unit, household) · US 6
click to expand

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.

2

Reforms and reproducibility

A reform re-dates parameters and re-resolves the same graph reform dict {parameter path → new value} re-dated parameter same graph, new values re-resolved graph household + population APIs Version-pinned release country-model + dataset versions pinned; estimates trace to the bundle
click to expand

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.

3

Survey microdata, enhanced

Building the enhanced UK dataset FRS survey household microdata administrative totals aggregate targets impute + reweight under-reported incomes, weights to match totals enhanced FRS enhanced_frs_2023_24 US population runs use the Current Population Survey (CPS)
click to expand

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).

4

What rests on the data, and who consumes it

Where the microsim feeds the rest of the suite PE microsim rule graph + enhanced microdata microdata static costing OLG model estimates its tax functions from this microdata OBR emulator takes static costings as the direct effect
click to expand

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.