score a reform

What would this reform do?

A statutory tax or benefit change has two acts: the direct effect on budgets and households, and the economy-wide feedback that follows. The suite scores both — the same two-step workflow the official institutions use, run on open models.

01 — the workflow

Two steps: direct effect, then macro feedback.

Microsimulation supplies the direct Exchequer effect, the macro model supplies the economy-wide feedback. A static-costing bridge wires the two together so a statutory reform can be scored end to end.

Long-run incentive effects are a different question — that is the OLG model. For choosing between models, see the catalog and comparison.

02 — worked example

1p on the basic rate, end to end.

Worked example — 1p on the basic rate of income tax from April 2026, scored 2026–2030. PolicyEngine puts the direct yield at £6.46bn in 2026, rising to £7.38bn by 2030; HMRC's June 2025 ready reckoner puts 1p at £6.9bn in 2026–27 rising to about £8.2bn by 2028–29, so the static costing sits inside the official range, toward its lower end. The bridge converts that yield into a quarterly revenue path and applies the corresponding held add-factor to household disposable income. Propagated through the consumption function, GDP falls 0.020% (−£0.14bn) on impact in 2026Q1, deepening to 0.058% (−£0.40bn) by 2027Q4 on the March 2026 baseline — the sign and order of magnitude the OBR's own indirect-effect conventions imply. The full mechanics are on the OBR emulator page; the microdata caveats on the microsimulation page.

direct yield, 2026 £6.46bn PolicyEngine static costing; £7.38bn by 2030
GDP, 2027Q4 −0.058% −£0.40bn on the March 2026 baseline
official reference £6.9bn HMRC June 2025 ready reckoner, 2026–27
03 — how far to trust it

Read the caveats before the headline.

Each half of the score carries different uncertainty. The direct costing rests on survey microdata: population aggregates inherit sampling error, imputation and ageing assumptions from the enhanced FRS, so a headline budgetary cost is an estimate in a way a household calculation is not.

Impact multiplier ~1 by construction. Under the demand closure a spending shock lands directly in the GDP identity and the behavioural second round is largely inactive. The OBR's published impact multiplier for current spending is 0.6. Treat the macro feedback as sign and order of magnitude, not a point estimate.

Every result carries a common score block — model class, horizon, provenance, per-quantity units and time basis, assumptions, caveats, and a comparability label. Cross-class results are often complementary rather than like-for-like and must not be averaged or ranked. Suite-wide evidence: validation.

04 — run it

One reform vocabulary, three surfaces.

The score_reform MCP tool and the pe-macro score CLI take the same PolicyEngine reform dict — a {parameter_path: value} map — and a scoring model: microsim (population costing, no macro feedback), obr (the emulator via the static-costing bridge), og (OG-UK steady state; slow, local-only), or og+microsim (dynamic scoring).

pe-macro score --country uk --reform '{"gov.hmrc.income_tax.rates.uk[0].rate":0.21}' --model obr

In a connected assistant, ask in plain language — “Score raising the UK basic rate of income tax to 21p.” — and the score_reform tool runs the same pipeline. Setup for the hosted MCP server, CLI, and Python API is on the Use page.

Want a reform scored for your organisation, or a question the current adapters don't reach? Commission an analysis.