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.
Checked rule by rule, not against a forecast.
There is no forecast error to report, because the model is not forecasting — it applies published rules, checkable by hand. For the £50,000 UK earner on the code page: £50,000 − £12,570 personal allowance = £37,430 of basic-rate income; at 20% that is £7,486 of income tax, at 8% £2,994 of National Insurance, leaving £39,520 net. Raising the basic rate 5pp adds 5% of £37,430 = £1,872. Every figure in the code sample is deterministic arithmetic from the implemented rules — which verifies those rules, not that every area of legislation has complete test coverage.
What is not exact is anything resting on survey microdata — population aggregates inherit sampling error, imputation and ageing assumptions from the enhanced FRS and the CPS, so a headline budgetary cost is an estimate in a way a household calculation is not. For the UK 1p basic-rate case, the OBR emulator working paper compares static costings against official sources: £6.46bn in 2026 rising to £7.38bn by 2030, inside the range of HMRC's June 2025 ready reckoner (£6.9bn rising to ~£8.2bn), toward its lower end. Suite-wide evidence: validation.
Scope and vintage.
| limit | detail |
|---|---|
| Static, no general equilibrium | Reforms are modelled statically, with optional post-hoc behavioural responses; prices, wages and output do not move. |
| UK data vintage | UK population runs use enhanced_frs_2023_24. Upstream now publishes an FRS 2024-25 vintage, which this integration has not adopted. |
| Survey-based aggregates | Population estimates inherit sampling, imputation and ageing error. HMRC's costings use administrative Survey of Personal Incomes data and embed taxable-income elasticities, so differences of a few hundred million on a broad-based rate change are expected. |
| Gated UK microdata | A HUGGING_FACE_TOKEN with access is required locally. Household calculations are unaffected. |
| Statute-vintage divergence with OLG | This package tracks the latest release; the OLG member is pinned to policyengine-uk==2.88.0, so the two can disagree on baseline statute — a declared inconsistency. |
| Two countries | UK and US only. |
no standalone working paper for this member yet — its behaviour is documented in the country model repositories and, where it feeds the macro members, in the OBR and OLG papers.