Skip to content

Charge VAT on private school fees at current law - #2319

Queued
MaxGhenis wants to merge 13 commits into
mainfrom
fix/private-school-vat-current-law
Queued

MaxGhenis wants to merge 13 commits into
mainfrom
fix/private-school-vat-current-law

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #2318

Private school fees have borne standard-rate VAT since 1 January 2025, but the model's contributed rate was zero at current law. This PR adds the statutory charge and separates it from receipt-calibrated general VAT, so government receipts count it once and no household's general VAT goes negative.

Statutory charge and incidence

  • Finance Act 2025 s.47 removes private school education, vocational training and closely related board/lodging from the VATA 1994 Schedule 9 education exemption. Section 49 applies the change to supplies from 1 January 2025.
  • gov.hmrc.vat.private_school_fees_exempt switches off on that date; the standard rate then applies. private_school_vat charges pupils × mean fee × effective VAT basis × max(statutory rate, contributed rate). Setting the contributed rate to 20% from 2025 produces no additional charge; 25% charges 25%.
  • gov_tax counts the level. household_tax counts private_school_vat_change, as it counts vat_change, preserving baseline household net income. Baseline policy is applied to this simulation's attendance and fee assumptions.

VAT receipts: the fees' share comes out of general VAT

The grossing factor (0.67 × 0.7 = 0.469) fits household VAT to OBR VAT receipts, which include VAT on private school fees. Counting private_school_vat on top would count that VAT twice. Let G be a household's grossed-up VAT, s private school fees' official share of VAT receipts, P0 the baseline school charge and P the current school charge:

vat          = G  × (1 − s)
baseline_vat = G0 × (1 − s)
combined VAT = vat + P

s is the new parameter gov.simulation.vat.private_school_share_of_receipts: HMRC's OBR-certified costing (Applying VAT to private school fees, Autumn Budget 2024 Table 5.1) over OBR cash-basis VAT receipts (March 2026 EFO, detailed forecast tables, table 3.8), by fiscal year from 1 April:

Fiscal year School-fee VAT VAT receipts s
2025-26 £1,505m £180,169m 0.8353%
2026-27 £1,560m £187,704m 0.8311%
2027-28 £1,610m £195,923m 0.8218%
2028-29 £1,665m £204,591m 0.8138%
2029-30 £1,725m £213,118m 0.8094% (held after)

It is zero for model year 2024, where private_school_vat is also zero (annual policy is read before the January 2025 commencement); the £460m part-year receipt stays in general VAT. vat and baseline_vat both read s from the simulation's own parameters, as baseline_private_school_vat reads its assumptions, so vat_change is exactly zero at baseline.

What this fixes

The reviewed head (4dcfa03c2) set vat = G − P0 × r / r0, subtracting each household's own school charge from its own VAT. A pupil with £10,000 fees and no recorded consumption had general VAT of −£2,000, and restoring the exemption left combined VAT at −£2,000. On the certified Enhanced FRS (policyengine-uk-data 1.58.1), 549 households with non-negative gross VAT had negative general VAT in 2025-26 (306,750 weighted households, −£0.58bn), rising to 572 in 2030-31. With the share, vat has the sign of G (0 ≤ s < 1): 0 newly negative households in every year, at baseline and under repeal.

Why the official share (design a) rather than a population share (design b)

Both were implemented and measured.

  • (b) a share measured on each simulation's population, s = Σw·P0·(r/r0) / Σw·G, has precedent (shareholding, consumption_shareholding and corporate_land_value divide by weighted national totals). On the certified dataset it preserved combined receipts to within £0.003m in 2024-25 to 2026-27. I rejected it because every household's VAT would then depend on the imputed attendance of every other household, and attendance is imputed from net income. Raising anyone's income tax, NI or council tax could move every household's VAT by G × Δs. The Aggregate impact counted-once check fails a head wherever such a response is one for one. It already fails vat in fewer than 10 households at the reviewed head (run 39830541074: counted_once:income_tax, :national_insurance, :council_tax), through the per-household subtraction. A household calculator would also measure its own school charge against its own VAT, which is the original defect, merely capped at zero.
  • (a) the official share keeps each household's VAT a function of its own consumption. vat no longer reads attendance or fees, so those three failures have no route, and the partition drops vat's attendance reads. Its cost is that current-law receipts are preserved only up to the share's accuracy: combined VAT changes by Σw·P0 − s·Σw·G.

Impact (measured locally on the certified dataset)

Enhanced FRS 2024-25, policyengine-uk-data 1.58.1 (sha256 056e80fd8e91…, the CI pin), aggregates only:

Fiscal year Gross VAT Σw·G (main's vat) School charge Σw·P0 = repeal cost Combined VAT vs main Newly negative vat households: reviewed head → this head
2025-26 £253.71bn £1.95bn −£0.17bn 549 → 0
2026-27 £260.53bn £2.01bn −£0.16bn 553 → 0
2027-28 £266.72bn £2.06bn −£0.13bn 557 → 0
2028-29 £273.14bn £2.11bn −£0.11bn 561 → 0
2029-30 £279.83bn £2.22bn −£0.04bn 566 → 0
2030-31 £286.71bn £2.28bn −£0.04bn 572 → 0

Gross VAT matches the base vat in run 39830541074 (£253.71bn in 2025-26). "Combined VAT vs main" is Σw(vat + private_school_vat) − Σw·G = Σw·P0 − s·Σw·G, and gov_tax moves by the same amount. 2024-25 is unchanged (share and charge both zero). No household with non-negative gross VAT has negative vat, or negative vat + private_school_vat, at baseline or under repeal, in any year.

  • Household net income, vat_change and private_school_vat_change are unchanged at current law (max |vat_change| = 0).
  • Repeal (restore gov.hmrc.vat.private_school_fees_exempt): receipts fall by exactly the weighted school charge, £1.95bn in 2025-26 rising to £2.28bn in 2030-31, equal to Σw·P0 to floating-point precision. vat is identical household by household; household taxes fall by the same amount.
  • The repeal cost is above HMRC's £1.5–1.6bn costing because attendance is imputed for 751,000 weighted pupils in 2025-26 (data#568 tracks the imputation), not because of the split. The current-law residual is small because two overstatements nearly offset: gross VAT is 41% above OBR receipts on this dataset (£253.7bn against £180.2bn), and the school charge is 29% above HMRC's.
  • sign: nonnegative is restored on the vat head (main's setting; the reviewed head had loosened it to any), so Aggregate impact CI checks negativity again. The 76 data#565 households with negative recorded consumption remain negative on both sides (a pre-existing failure, now reported on both).

Invariants (tested)

For any population, year from 2024 to 2030, fee, consumption and weights, with the exemption at current law or restored (test_private_school_vat_receipts.py, including a Hypothesis property):

  1. Non-negative: vat ≥ 0 and vat + private_school_vat ≥ 0 wherever recorded consumption is non-negative.
  2. Differential: vat = G × (1 − s), with G recomputed from the inputs and s from the published costing and receipts, independently of the formula. A parameter test ties each share to its cited numbers.
  3. National identity: Σw(vat + P) = (1 − s)·Σw·G + Σw·P0 at current law. It equals Σw·G when the school charge is s of gross VAT (tested on a small weighted population built to that condition). Restoring the exemption lowers it by exactly Σw·P0.
  4. Once: school-specific reforms (exemption, contributed rate) leave vat unchanged household by household; vat does not read attendance or fees; vat_change is zero at baseline.
  5. Standard-rate and grossing-factor reforms move general VAT by ΔG × (1 − s) and the school head on its own base.

Validation

Head 7ed18347c. Local, locked environment (uv sync --frozen --extra dev), foreground, -n 2, with the host gate held (load1 ≤ 110, ≥ 55 GB free):

  • YAML: vat/vat_grossing.yaml, private_school_vat.yaml, excise_integration.yaml: 21 passed.
  • test_private_school_vat_receipts.py and test_vat_grossing_legacy.py: 40 passed.
  • test_fiscal_partition.py, aggregate_impact/test_aggregate_impact_partition.py, test_private_school_vat_properties.py, test_scenario_baseline_parameters.py and test_dated_reform_routes.py::test_baseline_vat_is_current_law_on_every_route: 125 passed, 1 skipped (a microsimulation-marked test, skipped without the dataset environment variable; CI's credentialed job runs it).

The full suite and Aggregate impact run in CI on this head. Still a draft: CI and the hub's independent review at this head are pending.

uvx ruff format --check . and uvx ruff check . pass.

Reproducer: policyengine_uk/tests/test_private_school_vat_receipts.py::test_a_pupil_with_no_recorded_consumption_has_no_negative_vat, policyengine_uk/tests/test_private_school_vat_receipts.py::test_vat_is_never_negative_and_receipts_are_counted_once, policyengine_uk/tests/policy/baseline/gov/hmrc/private_school_vat.yaml

Updated stack

Merged #2235 at 8c1b54dd9, preserving its corporate SDLT counted-once fix, then merged main. The only conflicts were in the fiscal partition: retained upstream schema, spending/uncovered-receipt rows and other guards, together with the school level/change heads. #2235 merged during that job; this PR therefore targets main.

Remaining limits

  • Attendance is still imputed over under-18s, without separating nursery classes, chargeable 18-year-olds or local-authority placements, and gives 751,000 weighted pupils on the certified dataset; policyengine-uk-data#568 tracks the imputation limits and lack of behavioural response.
  • The official share is not the model's own school charge as a share of the model's gross VAT, so current-law combined receipts differ from the pre-PR total by Σw·P0 − s·Σw·G (above). Recalibrating gross VAT (data#567) and attendance (data#568) shrinks that difference.
  • Annual model year 2024 does not separately identify January–March 2025 school VAT. Those part-year receipts remain in general VAT.
  • General VAT still uses blended consumption shares; the split reconciles receipts, not actual household fee expenditure within COICOP consumption.
  • Existing scorecard events that set the contributed rate to 20% need reverse-delta treatment once they adopt this model release.
  • The hub owns independent review at the final head. No in-job review was run; do not merge without the hub's review.

axiom: TheAxiomFoundation/rulespec-uk#453 queued

The signed encoder is blocked on the Schedule 9/Finance Act provisions being added to its pinned corpus; #453 records the module, law, companion tests and blocker and is labelled pe-parity.

🤖 Generated with Claude Code

MaxGhenis and others added 5 commits October 11, 2026 14:45
The aggregate impact report (#2335) adds gov_spending, household_benefits
and spending_heads to fiscal_partition.yaml. The tax tests now check the
three tax totals only, require that spending heads borrow no tax head id or
variable and that no spending head names a tax total, and apply dropped_when
to the tax totals alone. Checked against #2335's file with these tax
sections merged in: this file's tests and #2335's partition and guard tests
pass.

The vat head records that 76 households have negative VAT on
policyengine-uk-data 1.58.0 (consumption or the full-rate expenditure share
is negative in the data; policyengine-uk-data issue 565).

Refs #2159

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Finance Act 2025 s.47 takes private school education, vocational training
and closely related board and lodging out of the VATA 1994 Sch 9 Group 6
exemption, with effect for supplies on or after 1 January 2025 (s.49). The
new gov.hmrc.vat.private_school_fees_exempt parameter records the
exemption; when it is off the fees bear the standard rate. The contributed
reform rate now raises the rate instead of adding to it, so setting it
never charges the fees twice.

private_school_vat moves to variables/gov/hmrc. Household taxes include it
as a change from baseline (private_school_vat_change), as they do VAT;
government tax revenue includes the level.

Fixes #2318

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
private_school_vat is now non-zero at current law, so it leaves the
zero-at-baseline heads and stays in gov_tax only; household_tax sums the
new private_school_vat_change head, which is zero at baseline, with
baseline_private_school_vat as its baseline measure. A level-and-change
guard mirrors vat and vat_change. The vat overlap guard becomes a
disjointness property: vat's full-rate share was trained when the fees
were exempt, and neither head reads the other's inputs or parameters.

Adds Hypothesis properties: private_school_vat matches the statute
computed independently, a reform rate at or below the statutory rate never
taxes the fees twice, the head is monotone in both rates, vat and
private_school_vat are disjoint, and the level, baseline and change agree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
baseline_private_school_vat now applies baseline policy (the exemption,
the standard rate and the reform rate) to this simulation's attendance,
mean fee and share of fees bearing VAT, so a reform that changes only those
assumptions (such as disabling economic assumptions, which moves the fee
uprating) is no longer scored as a household tax change. YAML cases now
compute the change and include reforms that raise and remove it; a grid
test checks the statutory rate exhaustively across the commencement, the
exemption, reform rates and standard rates. The exemption parameter starts
when VAT did (Finance Act 1972 Sch 5 Group 6), so no earlier lookup reads
as taxable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The vat guard becomes overlapping_base: the heads read separate inputs,
but vat applies one household share to all consumption including
education, so a fee-paying household's fees are charged at its blended
share, and in a household calculation education consumption entered as an
input is charged in both heads. On calibrated data the overlap is in
aggregate, because policyengine-uk-data targets vat at total OBR VAT
receipts (policyengine-uk-data#567). The partition header lists the guard
kinds and says data overlaps are recorded under their guards.

The identity property now draws households with a child at private school
and a scenario restoring the exemption, and checks the head is positive
exactly where a pupil's fees are charged. The changelog says contributed
reforms at 20% now score nothing from 2025.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the second independent review:
- The identity property always includes a household with a pupil, and
  under a restored exemption checks the head is zero and the change is
  minus the baseline charge exactly where a pupil's fees bore it.
- The grid's reference uses the statutory 20 per cent, not the model's
  parameter.
- The eligibility-reads guard says its check is vacuous for the private
  school heads on situations; the header says formula overlaps between
  heads with unseparated bases are recorded under their guards.
- private_school_vat notes that every imputed pupil is charged (nursery
  classes excepted by law, 18-year-olds chargeable), and the baseline notes
  it reads 1 January values where the level reads 30 April.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis force-pushed the fix/corporate-sdlt-double-count branch from 5f08c24 to 47eb1f7 Compare October 11, 2026 23:32
Base automatically changed from fix/corporate-sdlt-double-count to main October 22, 2026 13:16
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Adoption hand-off for the UK hub:

  • Published head: 5440614f3625c590f57f7f08516ada361c8c0b8b, pushed once as a fast-forward from 22be892e5. Original author/history preserved. Merged Count corporate SDLT once and let SDLT abolition remove all of it #2235 at 8c1b54dd9 (23274dbb8), then main at fe0b99a36 (b0c73519e). The only conflicts were fiscal-partition metadata; upstream heads/schema and this PR's school-VAT changes were retained. Count corporate SDLT once and let SDLT abolition remove all of it #2235 has merged, so the base is main.
  • Prepared follow-up: 4dcfa03c2aa940ec1b12f3e41c05c48b797f672c is local, not pushed. It forms the scalar standard-rate ratio before multiplying the float32 school allocation, preventing a tiny nonzero baseline vat_change for fractional fees. It adds a regression case. The job's one-push limit has been used; an explicit exception for this additional fast-forward push is pending. Keep draft until that fix is published and validated.
  • Tests: uvx ruff format --check . passes (1,942 files), along with full-tree Ruff lint and F811/F821 checks, including the local follow-up. Targeted locked-env tests were held by the required host gate: disk stayed around 54–57 GB, below 60 GB, and load1 intermittently exceeded 110. No local venv install, pytest suite or microsimulation ran. Remote Code changes and Aggregate impact are still queued; there is no measured impact report yet.
  • VAT accounting and receipts check: general vat now nets out modeled baseline school VAT scaled by current/baseline standard rate before gov_tax adds the explicit school charge. At current law combined VAT equals the existing receipt-calibrated gross amount; ordinary standard-rate changes also count the school response once. The factor remains 0.67 × 0.7 = 0.469, fitted to combined receipts. Published rounded Microcosm inputs give £80.48bn / 0.469 = £171.599bn against OBR 2024-25 £170.994bn (+0.35%); this existing fit is preserved, rather than adding the official £1.56bn 2026-27 school-fee costing on top. This is an algebraic/published-aggregate check, not a fresh microsimulation. docs/engineering/vat-coverage.md explains the exact identity, part-year timing and dataset limitations.
  • Open items: authorize/publish the prepared rounding commit; obtain green full-suite CI and the measured Aggregate impact/VAT breakdown; mark ready only then; hub independent review at the final head. No in-job review was run. Existing nursery/18-year-old, local-authority-placement, behavior and dataset-fit limitations remain documented. Do not merge.

.job/RESOLUTIONS.md, .job/PROGRESS.md, .job/HANDOFF.md, handoffs.jsonl and recovery bundles are in the assigned workspace. Git metadata is workspace-local (source .job/env, then .job/git) because the original caller-owned Git metadata is sandbox read-only. The hub must salvage from that local Git directory or the bundles. .hypothesis/ and .job/uv-cache are deleted; no background process was started or left running.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Aggregate impact on certified data: pass

Base 8f430689ea against head faf1081f36, both on enhanced_frs_2024_25.h5 (policyengine-uk-data 1.58.1, sha256 056e80fd8e91), fiscal years 2025-26 to 2031-32. Each year is a full microsimulation run on each side.

Checks: 0 broken by this change, 1 failing on both sides, 0 fixed. Moves flagged for review: 14 (thresholds in report_spec.yaml; a flag does not fail the job).

Workflow run and full report

Notes

  • This change edits the fiscal partition; review the partition diff alongside the moves it explains.
  • In the years a figure from fewer than 10 records is suppressed (spending.disabled_students_allowance), every total containing it, and the decile incomes, are rebuilt from their other components, so no published total includes it. Those totals are marked †. A change is withheld where the two sides leave out different figures and can't be lined up.
  • Change in private school VAT from its baseline (receipts.private_school_vat_change) is measured on the head only.

Moves flagged for review

Measure Year Base Head Change
VAT on private school fees 2031-32 £0.00bn £2.34bn +£2.34bn
VAT on private school fees 2030-31 £0.00bn £2.28bn +£2.28bn
VAT on private school fees 2029-30 £0.00bn £2.23bn +£2.23bn
VAT on private school fees 2028-29 £0.00bn £2.11bn +£2.11bn
VAT on private school fees 2027-28 £0.00bn £2.06bn +£2.06bn
VAT on private school fees 2026-27 £0.00bn £2.01bn +£2.01bn
VAT on private school fees 2025-26 £0.00bn £1.95bn +£1.95bn
VAT excluding private school fees 2025-26 £253.71bn £251.59bn -£2.12bn
VAT excluding private school fees 2026-27 £260.53bn £258.36bn -£2.17bn
VAT excluding private school fees 2027-28 £266.72bn £264.53bn -£2.19bn
VAT excluding private school fees 2028-29 £273.14bn £270.92bn -£2.22bn
VAT excluding private school fees 2031-32 £293.71bn £291.33bn -£2.38bn
VAT excluding private school fees 2029-30 £279.83bn £277.57bn -£2.26bn
VAT excluding private school fees 2030-31 £286.71bn £284.39bn -£2.32bn

Receipts by tax head

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
VAT excluding private school fees -£2.12bn -£2.17bn -£2.19bn -£2.22bn -£2.26bn -£2.32bn -£2.38bn
VAT on private school fees +£1.95bn +£2.01bn +£2.06bn +£2.11bn +£2.23bn +£2.28bn +£2.34bn
Change in private school VAT from its baseline (new: head levels) £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn

Spending by benefit and service

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed

Caseloads

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed

Government balance, each component counted once

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Government receipts, each component once -£172.9m -£157.8m -£130.8m -£112.6m -£38.1m -£39.6m -£40.7m
Government balance, each receipt once -£172.9m † -£157.8m † -£130.8m † -£112.6m † -£38.1m † -£39.6m † -£40.7m †

Model totals

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
gov_tax -£172.9m -£157.8m -£130.8m -£112.6m -£38.1m -£39.6m -£40.7m
gov_balance -£172.9m † -£157.8m † -£130.8m † -£112.6m † -£38.1m † -£39.6m † -£40.7m †

Standard reform costings (change in gov_balance)

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Raise basic rate by 1pp +£89,830 -£2.9m -£2.5m -£1.4m -£2.3m +£18.6m -£0.4m
Raise higher rate by 1pp -£0.6m +£0.5m -£1.1m -£0.6m -£1.7m +£22,811 -£4.0m
Raise personal allowance by ~800GBP/year +£4.4m -£4.5m -£6,021 +£0.2m -£6.4m -£0.3m +£1.5m
Raise child benefit by 25GBP/week per additional child +£0.6m +£0.4m +£19.2m +£20.1m +£21.2m +£19.5m +£22.0m
Reduce Universal Credit taper rate to 20% +£20.1m +£0.3m -£1.8m +£63.4m +£5.4m -£47.7m +£74.1m
Raise Class 1 main employee NICs rate to 10% -£0.9m -£45.1m -£2.1m -£1.1m -£38.0m -£39.9m -£61.5m
Raise VAT standard rate by 2pp -£14.2m -£12.7m -£9.9m -£8.1m -£0.6m -£0.6m -£0.7m
Raise additional rate by 3pp -£0.2m -£0.2m -£3.6m -£3.2m -£9.6m suppressed suppressed
Raise the Universal Credit standard allowance by 10% -£0.5m -£1.0m -£1.7m +£18.0m +£21.3m +£21.6m +£35.5m
Raise the State Pension by 10% -£16.2m -£7.5m -£3.1m -£0.7m -£55.3m -£56.6m -£2.1m

Standard reforms: change in each reform's target

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Raise VAT standard rate by 2pp: change in vat -£208.9m -£213.4m -£216.0m -£219.1m -£223.2m -£228.7m -£234.3m
Raise additional rate by 3pp: change in income_tax 0 0 0 0 0 suppressed suppressed

Household net income by decile

No household's net income changes in any year.

No change in any year: household income totals; population; poverty rates; people in poverty; inequality; mean household net income in each side's own deciles.

Checks failing on both base and head (1)
  • VAT excluding private school fees is never negative (sign:vat): 2025-26: 76 units below zero, a weighted £-54,340,246 in total; 2026-27: 76 units below zero, a weighted £-55,803,679 in total; 2027-28: 76 units below zero, a weighted £-57,135,715 in total
Counted-once check

Each of 85 components was raised by £1 per unit in 2026-27, and every head of its totals was read household by household: its own head must rise by exactly £1, no other tax head may move, no other benefit may rise, and the model's own total must move by what its heads moved. A head that breaks a rule is measured again twice: with every other head held at its baseline value, and with every other head held at its value after the first £1 while the component rises again. It fails where either still shows the response. 0 failed; 0 were skipped.

Provenance
Side Commit Runtime Environment hash Partition hash Time
base main 8f430689ea uk 2.148.3 (files 32999b1d5216), core 3.33.2, py 3.13.17 aarch64 31784e87dc6a d4c1e9f08160 1565.51s
head #2319 merged into main faf1081f36 uk 2.148.3 (files 5ac6b73e6215), core 3.33.2, py 3.13.17 aarch64 31784e87dc6a 732ba408c16f 1560.43s

Dataset: hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@2526edbbb687a3b54dbb11272e5389e4b62d2ac2, sha256 056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784 (verified on both sides), policyengine-uk-data 1.58.1.

Receipts by tax head: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Income tax £299.29bn £319.01bn £336.54bn £351.69bn £367.24bn £385.36bn £403.66bn
National Insurance (employee and self-employed) £52.58bn £54.94bn £56.75bn £58.48bn £60.62bn £62.57bn £65.03bn
National Insurance (employer) £152.64bn £159.18bn £164.14bn £168.73bn £176.11bn £181.72bn £188.90bn
Employer NI change borne by capital £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Employer NI change borne by consumers £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Capital gains tax £12.62bn £13.06bn £13.55bn £14.04bn £14.54bn £15.09bn £15.65bn
Student loan repayments £7.83bn £8.12bn £8.35bn £8.56bn £8.79bn £9.04bn £9.38bn
VAT excluding private school fees £251.59bn £258.36bn £264.53bn £270.92bn £277.57bn £284.39bn £291.33bn
Change in VAT from its baseline £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
VAT on private school fees £1.95bn £2.01bn £2.06bn £2.11bn £2.23bn £2.28bn £2.34bn
Change in private school VAT from its baseline £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Fuel duties £24.53bn £24.64bn £26.64bn £26.69bn £26.42bn £25.76bn £26.35bn
Alcohol duties £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Tobacco duties £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Vehicle excise duties £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
TV licence fee £4.28bn £4.43bn £4.44bn £4.46bn £4.48bn £4.51bn £4.53bn
Council tax £49.56bn £52.45bn £55.78bn £59.39bn £62.98bn £66.74bn £70.70bn
High value council tax surcharge £0.00bn £0.00bn £0.00bn £0.48bn £0.49bn £0.51bn £0.52bn
Northern Ireland domestic rates £0.55bn £0.58bn £0.61bn £0.63bn £0.67bn £0.70bn £0.73bn
Business rates £31.73bn £31.73bn £31.73bn £31.73bn £31.73bn £31.73bn £31.73bn
Stamp duty land tax on the household's own purchases £6.93bn £7.42bn £7.85bn £8.26bn £8.68bn £9.09bn £9.51bn
Stamp duty land tax paid by companies £3.13bn £3.13bn £3.13bn £3.13bn £3.13bn £3.13bn £3.13bn
Land transaction tax (Wales) £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Land and buildings transaction tax (Scotland) £0.01bn £0.01bn £0.02bn £0.02bn £0.02bn £0.02bn £0.02bn
Unspecified tax change borne by capital £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Unspecified tax change borne by consumers £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Wealth tax £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Wealth tax excluding the main residence £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Land value tax £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Carbon tax £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Spending by benefit and service: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
State Pension £122.15bn £126.64bn £127.76bn £129.65bn £133.46bn £137.40bn £141.47bn
Pension Credit £6.68bn £7.07bn £7.09bn £7.16bn £7.28bn £7.42bn £7.52bn
Winter Fuel Payment £1.70bn £1.68bn £1.59bn £1.57bn £1.57bn £1.55bn £1.52bn
Pension Age Winter Heating Payment (Scotland) £0.19bn £0.20bn £0.20bn £0.21bn £0.21bn £0.22bn £0.22bn
Universal Credit £75.54bn £80.75bn £83.40bn £85.21bn £86.21bn £87.61bn £88.91bn
Housing Benefit £8.59bn £8.93bn £9.19bn £9.33bn £9.61bn £9.87bn £10.15bn
Council Tax Reduction £1.99bn £2.03bn £2.08bn £2.13bn £2.18bn £2.23bn £2.29bn
Employment and Support Allowance (income-related) £0.79bn £0.81bn £0.83bn £0.85bn £0.87bn £0.89bn £0.91bn
Employment and Support Allowance (contribution-based) £5.22bn £5.36bn £5.49bn £5.62bn £5.76bn £5.90bn £6.04bn
Jobseeker's Allowance (income-based) £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Jobseeker's Allowance (contribution-based) £0.29bn £0.30bn £0.30bn £0.31bn £0.32bn £0.33bn £0.33bn
Income Support £0.12bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Working Tax Credit £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Child Tax Credit £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Incapacity Benefit £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Personal Independence Payment £27.05bn £28.19bn £29.28bn £30.02bn £30.75bn £31.51bn £32.28bn
Disability Living Allowance £7.52bn £7.83bn £8.14bn £8.34bn £8.55bn £8.76bn £8.97bn
Attendance Allowance £8.71bn £9.08bn £9.43bn £9.67bn £9.90bn £10.15bn £10.40bn
Carer's Allowance £4.50bn £4.69bn £4.87bn £4.99bn £5.11bn £5.23bn £5.36bn
Carer Support Payment (Scotland) £0.31bn £0.32bn £0.34bn £0.34bn £0.35bn £0.36bn £0.37bn
Carer's Allowance Supplement (Scotland) £0.00bn £0.04bn £0.04bn £0.04bn £0.04bn £0.04bn £0.04bn
Severe Disablement Allowance £0.03bn £0.03bn £0.03bn £0.03bn £0.03bn £0.03bn £0.03bn
Industrial Injuries Disablement Benefit £0.51bn £0.52bn £0.53bn £0.54bn £0.56bn £0.57bn £0.59bn
Armed Forces Compensation Scheme £0.61bn £0.62bn £0.64bn £0.65bn £0.67bn £0.69bn £0.70bn
War Widow's or Widower's Pension £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Child Benefit £16.23bn £16.91bn £17.53bn £17.96bn £18.39bn £18.84bn £19.29bn
Scottish Child Payment £0.50bn £0.52bn £0.53bn £0.55bn £0.56bn £0.57bn £0.58bn
Two Child Limit Payment (Scotland, counterfactual) £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Healthy Start vouchers £0.05bn £0.05bn £0.05bn £0.05bn £0.05bn £0.05bn £0.05bn
Maternity Allowance £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Statutory Maternity Pay £3.32bn £3.41bn £3.49bn £3.57bn £3.66bn £3.75bn £3.84bn
Statutory Paternity Pay £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Statutory Sick Pay £1.13bn £1.16bn £1.19bn £1.22bn £1.25bn £1.28bn £1.31bn
Sure Start Maternity Grant £0.01bn £0.01bn £0.01bn £0.01bn £0.01bn £0.01bn £0.01bn
Bereavement Support Payment £0.67bn £0.69bn £0.70bn £0.72bn £0.74bn £0.76bn £0.78bn
Tax-Free Childcare £0.55bn £0.56bn £0.57bn £0.58bn £0.60bn £0.61bn £0.59bn
Extended childcare entitlement £2.77bn £3.27bn £3.36bn £3.43bn £3.53bn £3.61bn £3.70bn
Universal childcare entitlement £2.26bn £2.45bn £2.51bn £2.58bn £2.64bn £2.72bn £2.78bn
Targeted childcare entitlement £0.47bn £0.49bn £0.50bn £0.51bn £0.52bn £0.53bn £0.47bn
Care to Learn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Childcare Grant £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Parents' Learning Allowance £0.20bn £0.20bn £0.20bn £0.20bn £0.20bn £0.20bn £0.20bn
Adult Dependants' Grant £0.06bn £0.06bn £0.04bn £0.04bn £0.04bn £0.04bn £0.04bn
Travel Grant £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed
16 to 19 Bursary Fund £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
NHS spending £204.68bn £205.46bn £206.22bn £207.04bn £207.96bn £208.89bn £209.79bn
State education spending £0.02bn £0.02bn £0.02bn £0.02bn £0.02bn £0.02bn £0.02bn
Transport subsidy spending £25.15bn £25.25bn £25.34bn £25.44bn £25.55bn £25.67bn £25.78bn
Cost-of-living support payment £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Energy Bills Rebate £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Energy Price Guarantee subsidy £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Basic income £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Disability basic income £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Other public spending budget change £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Caseloads: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
State Pension 11,308k 11,208k 10,906k 10,812k 10,860k 10,908k 10,955k
Pension Credit 1,491k 1,489k 1,478k 1,459k 1,459k 1,456k 1,453k
Winter Fuel Payment 7,091k 7,011k 6,599k 6,512k 6,493k 6,379k 6,248k
Pension Age Winter Heating Payment (Scotland) 806k 807k 807k 805k 809k 812k 816k
Universal Credit 6,361k 6,370k 6,404k 6,419k 6,390k 6,387k 6,368k
Housing Benefit 1,254k 1,252k 1,254k 1,239k 1,245k 1,247k 1,249k
Council Tax Reduction 3,187k 3,212k 3,227k 3,246k 3,265k 3,282k 3,294k
Employment and Support Allowance (income-related) 71k 71k 71k 72k 72k 72k 72k
Employment and Support Allowance (contribution-based) 722k 724k 727k 730k 733k 737k 740k
Jobseeker's Allowance (income-based) 0k 0k 0k 0k 0k 0k 0k
Jobseeker's Allowance (contribution-based) 67k 67k 68k 68k 68k 69k 69k
Income Support 25k 0k 0k 0k 0k 0k 0k
Working Tax Credit 0k 0k 0k 0k 0k 0k 0k
Child Tax Credit 0k 0k 0k 0k 0k 0k 0k
Incapacity Benefit 0k 0k 0k 0k 0k 0k 0k
Personal Independence Payment 3,581k 3,595k 3,608k 3,623k 3,639k 3,655k 3,671k
Disability Living Allowance 1,296k 1,301k 1,306k 1,311k 1,317k 1,323k 1,329k
Attendance Allowance 1,701k 1,708k 1,714k 1,721k 1,729k 1,736k 1,744k
Carer's Allowance 1,038k 1,042k 1,046k 1,050k 1,055k 1,059k 1,064k
Carer Support Payment (Scotland) 71k 72k 72k 72k 73k 73k 73k
Carer's Allowance Supplement (Scotland) 0k 72k 72k 72k 73k 73k 73k
Severe Disablement Allowance 4k 4k 4k 4k 4k 4k 4k
Industrial Injuries Disablement Benefit 137k 138k 139k 139k 140k 140k 141k
Armed Forces Compensation Scheme 94k 94k 94k 95k 95k 95k 96k
War Widow's or Widower's Pension 0k 0k 0k 0k 0k 0k 0k
Child Benefit 8,136k 8,165k 8,185k 8,215k 8,249k 8,282k 8,314k
Scottish Child Payment 352k 354k 355k 359k 357k 358k 357k
Two Child Limit Payment (Scotland, counterfactual) 0k 0k 0k 0k 0k 0k 0k
Healthy Start vouchers 200k 201k 202k 203k 204k 204k 205k
Maternity Allowance 0k 0k 0k 0k 0k 0k 0k
Statutory Maternity Pay 334k 335k 336k 338k 339k 341k 342k
Statutory Paternity Pay 0k 0k 0k 0k 0k 0k 0k
Statutory Sick Pay 182k 183k 183k 184k 185k 186k 186k
Sure Start Maternity Grant 26k 26k 26k 27k 27k 27k 27k
Bereavement Support Payment 98k 98k 99k 99k 100k 100k 101k
Tax-Free Childcare 1,018k 1,029k 1,028k 1,033k 1,034k 1,039k 1,023k
Extended childcare entitlement 718k 724k 728k 732k 737k 741k 743k
Universal childcare entitlement 986k 989k 992k 997k 1,002k 1,013k 1,015k
Targeted childcare entitlement 98k 98k 96k 96k 96k 97k 84k
Care to Learn 0k 0k 0k 0k 0k 0k 0k
Childcare Grant 0k 0k 0k 0k 0k 0k 0k
Parents' Learning Allowance 98k 99k 99k 100k 100k 100k 101k
Adult Dependants' Grant 18k 18k 12k 13k 13k 13k 13k
Travel Grant 0k 0k 0k 0k 0k 0k 0k
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed
16 to 19 Bursary Fund 0k 0k 0k 0k 0k 0k 0k
Cost-of-living support payment 0k 0k 0k 0k 0k 0k 0k
Energy Bills Rebate 0k 0k 0k 0k 0k 0k 0k
Energy Price Guarantee subsidy 0k 0k 0k 0k 0k 0k 0k
Basic income 0k 0k 0k 0k 0k 0k 0k
Disability basic income 0k 0k 0k 0k 0k 0k 0k
Government balance, each component counted once: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Government receipts, each component once £899.21bn £939.08bn £976.12bn £1,009.34bn £1,045.69bn £1,082.63bn £1,123.51bn
Government spending £530.59bn † £545.60bn † £553.50bn † £560.62bn † £569.17bn † £578.34bn † £587.37bn †
Government balance, each receipt once £368.62bn † £393.48bn † £422.62bn † £448.72bn † £476.52bn † £504.30bn † £536.14bn †
Benefits in household_benefits but not in gov_spending £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Model totals: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
gov_tax £899.21bn £939.08bn £976.12bn £1,009.34bn £1,045.69bn £1,082.63bn £1,123.51bn
household_tax £493.03bn £519.53bn £545.39bn £567.58bn £589.79bn £614.24bn £640.95bn
pre_budget_change_household_tax £485.21bn £511.41bn £537.04bn £558.54bn £580.51bn £604.69bn £631.05bn
gov_spending £530.59bn † £545.60bn † £553.50bn † £560.62bn † £569.17bn † £578.34bn † £587.37bn †
household_benefits £530.59bn † £545.60bn † £553.50bn † £560.62bn † £569.17bn † £578.34bn † £587.37bn †
gov_balance £368.62bn † £393.48bn † £422.62bn † £448.72bn † £476.52bn † £504.30bn † £536.14bn †
Household income totals: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Household market income £1,657.06bn £1,719.25bn £1,771.68bn £1,821.99bn £1,872.88bn £1,930.99bn £2,001.98bn
Household net income £1,655.35bn † £1,704.56bn † £1,737.91bn † £1,772.09bn † £1,808.19bn † £1,849.75bn † £1,901.35bn †
Household net income (HBAI definition) £1,461.82bn £1,509.34bn £1,543.14bn £1,576.21bn £1,610.27bn £1,649.28bn £1,699.67bn
Population: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
People 69,514k 69,778k 70,036k 70,316k 70,626k 70,944k 71,249k
Benefit units 35,247k 35,381k 35,512k 35,654k 35,811k 35,972k 36,127k
Households 31,167k 31,285k 31,401k 31,526k 31,665k 31,808k 31,944k
Poverty rates: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Absolute poverty, before housing costs: everyone 16.2% 15.2% 15.5% 15.7% 15.8% 15.9% 15.8%
Absolute poverty, before housing costs: children 24.6% 21.4% 21.6% 21.6% 21.8% 22.0% 21.9%
Absolute poverty, before housing costs: working-age adults 14.0% 13.6% 14.0% 14.2% 14.2% 14.3% 14.3%
Absolute poverty, before housing costs: pensioners 13.7% 13.2% 13.2% 13.5% 13.5% 13.6% 13.6%
Absolute poverty, after housing costs: everyone 21.6% 20.9% 21.4% 21.6% 22.0% 22.2% 22.3%
Absolute poverty, after housing costs: children 33.4% 30.9% 31.2% 31.3% 31.7% 32.2% 32.3%
Absolute poverty, after housing costs: working-age adults 19.9% 19.7% 20.3% 20.5% 20.8% 21.1% 21.1%
Absolute poverty, after housing costs: pensioners 12.8% 12.6% 12.6% 13.0% 13.3% 13.4% 13.4%
Relative poverty, before housing costs: everyone 17.3% 16.5% 16.5% 16.6% 16.4% 16.5% 16.4%
Relative poverty, before housing costs: children 26.4% 23.7% 23.4% 23.4% 22.9% 23.0% 22.9%
Relative poverty, before housing costs: working-age adults 14.7% 14.4% 14.7% 14.8% 14.7% 14.8% 14.8%
Relative poverty, before housing costs: pensioners 15.0% 14.8% 14.1% 14.2% 14.0% 14.0% 14.2%
Relative poverty, after housing costs: everyone 21.7% 21.1% 21.3% 21.3% 21.4% 21.5% 21.8%
Relative poverty, after housing costs: children 33.5% 31.3% 31.0% 30.8% 31.0% 31.1% 31.5%
Relative poverty, after housing costs: working-age adults 19.9% 19.9% 20.2% 20.3% 20.5% 20.6% 20.8%
Relative poverty, after housing costs: pensioners 13.0% 12.7% 12.6% 12.2% 12.2% 12.2% 12.9%
People in poverty: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Absolute poverty, before housing costs: everyone 11,292k 10,600k 10,879k 11,030k 11,126k 11,261k 11,276k
Absolute poverty, before housing costs: children 3,696k 3,227k 3,267k 3,285k 3,319k 3,371k 3,363k
Absolute poverty, before housing costs: working-age adults 5,962k 5,814k 6,092k 6,204k 6,256k 6,325k 6,337k
Absolute poverty, before housing costs: pensioners 1,634k 1,560k 1,519k 1,540k 1,551k 1,566k 1,576k
Absolute poverty, after housing costs: everyone 15,006k 14,575k 14,991k 15,214k 15,515k 15,778k 15,881k
Absolute poverty, after housing costs: children 5,005k 4,656k 4,709k 4,752k 4,834k 4,930k 4,973k
Absolute poverty, after housing costs: working-age adults 8,478k 8,434k 8,830k 8,977k 9,160k 9,308k 9,358k
Absolute poverty, after housing costs: pensioners 1,522k 1,484k 1,452k 1,486k 1,521k 1,540k 1,551k
Relative poverty, before housing costs: everyone 11,992k 11,508k 11,549k 11,665k 11,552k 11,671k 11,720k
Relative poverty, before housing costs: children 3,963k 3,570k 3,543k 3,556k 3,490k 3,521k 3,519k
Relative poverty, before housing costs: working-age adults 6,246k 6,184k 6,380k 6,486k 6,458k 6,537k 6,561k
Relative poverty, before housing costs: pensioners 1,782k 1,754k 1,626k 1,623k 1,605k 1,613k 1,640k
Relative poverty, after housing costs: everyone 15,067k 14,733k 14,905k 14,951k 15,105k 15,243k 15,533k
Relative poverty, after housing costs: children 5,019k 4,715k 4,686k 4,669k 4,723k 4,757k 4,840k
Relative poverty, after housing costs: working-age adults 8,497k 8,517k 8,772k 8,888k 8,988k 9,081k 9,205k
Relative poverty, after housing costs: pensioners 1,551k 1,502k 1,447k 1,393k 1,395k 1,404k 1,488k
Inequality: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Gini coefficient, equivalised HBAI income before housing costs 0.3088 0.3062 0.3069 0.3075 0.3080 0.3086 0.3097
Mean household net income in each side's own deciles: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Decile 1: mean household_net_income per household £17,835 † £18,010 † £18,020 † £18,060 † £18,380 † £18,572 † £18,734 †
Decile 2: mean household_net_income per household £28,078 † £29,004 † £28,743 † £29,189 † £29,502 † £29,904 † £30,490 †
Decile 3: mean household_net_income per household £34,294 † £35,659 † £36,184 † £36,723 † £37,036 † £37,546 † £38,328 †
Decile 4: mean household_net_income per household £38,824 † £40,941 † £42,016 † £42,629 † £43,377 † £44,229 † £44,578 †
Decile 5: mean household_net_income per household £43,957 † £44,826 † £45,887 † £46,647 † £47,810 † £48,661 † £49,814 †
Decile 6: mean household_net_income per household £48,402 † £49,760 † £50,859 † £51,587 † £51,895 † £53,349 † £54,692 †
Decile 7: mean household_net_income per household £56,398 † £57,591 † £58,375 † £59,116 † £60,152 † £60,779 † £62,280 †
Decile 8: mean household_net_income per household £69,269 † £70,751 † £72,207 † £73,297 † £74,774 † £76,205 † £78,216 †
Decile 9: mean household_net_income per household £79,799 † £82,161 † £83,281 † £84,726 † £86,255 † £87,812 † £90,866 †
Decile 10: mean household_net_income per household £117,839 † £120,664 † £122,603 † £124,740 † £126,967 † £129,313 † £132,025 †
Standard reform costings (change in gov_balance): head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Raise basic rate by 1pp £6.22bn £6.50bn £6.70bn £6.90bn £7.11bn £7.36bn £7.62bn
Raise higher rate by 1pp £3.54bn £3.82bn £4.05bn £4.27bn £4.49bn £4.76bn £4.96bn
Raise personal allowance by ~800GBP/year £-3.83bn £-3.96bn £-4.03bn £-4.10bn £-4.20bn £-4.30bn £-2.01bn
Raise child benefit by 25GBP/week per additional child £-2.00bn £-1.76bn £-1.56bn £-1.46bn £-1.36bn £-1.26bn £-1.15bn
Reduce Universal Credit taper rate to 20% £-20.47bn £-21.05bn £-21.50bn £-21.88bn £-22.02bn £-22.45bn £-22.80bn
Raise Class 1 main employee NICs rate to 10% £11.07bn £11.47bn £11.83bn £12.14bn £12.46bn £12.79bn £13.17bn
Raise VAT standard rate by 2pp £24.99bn £25.67bn £26.28bn £26.91bn £27.58bn £28.26bn £28.95bn
Raise additional rate by 3pp £2.83bn £3.07bn £3.27bn £3.47bn £3.66bn suppressed suppressed
Raise the Universal Credit standard allowance by 10% £-3.03bn £-3.16bn £-3.28bn £-3.34bn £-3.37bn £-3.42bn £-3.48bn
Raise the State Pension by 10% £-7.83bn £-8.07bn £-8.00bn £-8.11bn £-8.42bn £-8.71bn £-9.02bn
Standard reforms: change in each reform's target: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Raise basic rate by 1pp: change in income_tax £6.36bn £6.65bn £6.86bn £7.07bn £7.28bn £7.52bn £7.80bn
Raise higher rate by 1pp: change in income_tax £3.55bn £3.83bn £4.06bn £4.28bn £4.50bn £4.77bn £4.97bn
Raise personal allowance by ~800GBP/year: change in income_tax £-3.96bn £-4.10bn £-4.19bn £-4.26bn £-4.36bn £-4.47bn £-1.77bn
Raise child benefit by 25GBP/week per additional child: change in child_benefit £2.34bn £2.15bn £1.96bn £1.85bn £1.74bn £1.63bn £1.51bn
Reduce Universal Credit taper rate to 20%: change in universal_credit £20.48bn £21.04bn £21.49bn £21.93bn £22.02bn £22.40bn £22.86bn
Raise Class 1 main employee NICs rate to 10%: change in national_insurance £11.33bn £11.79bn £12.13bn £12.44bn £12.78bn £13.13bn £13.62bn
Raise VAT standard rate by 2pp: change in vat £24.80bn £25.47bn £26.07bn £26.70bn £27.36bn £28.03bn £28.71bn
Raise additional rate by 3pp: change in income_tax £2.83bn £3.07bn £3.27bn £3.47bn £3.67bn suppressed suppressed
Raise the Universal Credit standard allowance by 10%: change in universal_credit £3.03bn £3.16bn £3.28bn £3.36bn £3.41bn £3.47bn £3.52bn
Raise the State Pension by 10%: change in state_pension £10.72bn £11.23bn £11.37bn £11.62bn £12.08bn £12.54bn £13.07bn

vat subtracted each household's own baseline school charge from its own
grossed-up VAT, so a pupil with little recorded consumption had negative
general VAT (-2,000 for one pupil, 10,000 fees and no consumption), and
restoring the exemption left it there. On the certified Enhanced FRS that
made 549 households' general VAT negative in 2025-26.

General VAT is now gross VAT times one less private school fees' official
share of VAT receipts (new gov.simulation.vat.private_school_share_of_receipts:
HMRC's OBR-certified costing over OBR March 2026 cash-basis VAT receipts).
It keeps the sign of gross VAT, reads neither attendance nor fees, and
school-specific reforms move only private_school_vat. A repeal lowers
receipts by exactly the weighted school charge. Current-law combined
receipts change by the weighted school charge less the share of weighted
gross VAT (-£0.17bn in 2025-26 on the certified dataset).

The fiscal partition drops vat's attendance reads and restores
sign: nonnegative on the vat head.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Hand-off for the UK hub (P1 fix from REVIEW_2319.md, reviewed head 4dcfa03c2):

  • Head: 7ed18347cfe23c559a5eabb0609d235ae4e2fa91, one commit on top of 4dcfa03c2 (fast-forward push, no force; original history kept).
  • Fix: vat = G × (1 − s) and baseline_vat = G0 × (1 − s), where s is the new gov.simulation.vat.private_school_share_of_receipts: HMRC's OBR-certified school-fee VAT costing over OBR March 2026 cash-basis VAT receipts (0.8353% in 2025-26 to 0.8094% in 2029-30, zero before). vat keeps the sign of gross VAT and reads neither attendance nor fees. The partition drops vat's attendance reads and restores sign: nonnegative. The PR body explains why this beats a population-measured share. That design was implemented and measured as exact, but would make every household's VAT depend on everyone's imputed attendance, the route behind the three counted_once failures in run 39830541074.
  • Measured locally on the certified Enhanced FRS 1.58.1 (aggregates only): newly negative vat households fall from 549 (2025-26) to 572 (2030-31) at 4dcfa03c2 to 0 in every year, at baseline and under repeal. Repeal (restore private_school_fees_exempt) lowers receipts by exactly Σw·P0: £1.95bn in 2025-26 to £2.28bn in 2030-31. Current-law combined VAT vs main: −£0.17bn (2025-26), −£0.16bn, −£0.13bn, −£0.11bn, −£0.04bn, −£0.04bn (2030-31). vat_change is 0 at baseline.
  • Tests (local, -n 2, foreground, gate held): focused YAML 21 passed; test_private_school_vat_receipts.py + test_vat_grossing_legacy.py 40 passed; test_fiscal_partition.py, test_aggregate_impact_partition.py, test_private_school_vat_properties.py, test_scenario_baseline_parameters.py, test_dated_reform_routes.py::test_baseline_vat_is_current_law_on_every_route 125 passed, 1 skipped (microsimulation-marked, no dataset env var). ruff format --check . and ruff check . pass.
  • Pending: CI on this head (Aggregate impact should clear the three counted_once failures, and should report sign:vat as failing on both sides for the 76 data#565 households). Then the hub's GPT-6.1 Sol review. Not run in-job, per adopt-common.
  • Open item: the repeal cost exceeds HMRC's £1.505bn because attendance is imputed for 751,000 weighted pupils (policyengine-uk-data#568), not because of the split.
  • Still a draft; not merged or marked ready.

MaxGhenis and others added 2 commits October 23, 2026 04:31
The share's denominators are OBR March 2026 receipts sheet 3.8, row 13,
E13:I13; record the cells and the workbook's SHA-256 so the values can be
reproduced. Also correct three passages that still said the two VAT heads
sum exactly to the gross amount: they match it to within the share's
accuracy (at most 0.07% below on Enhanced FRS 1.58.1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 23, 2026 11:30
@MaxGhenis
MaxGhenis added this pull request to the merge queue Oct 23, 2026
Any commits made after this event will not be merged.
vahid-ahmadi added a commit that referenced this pull request Oct 23, 2026
CI at 9bbcef8 failed test_head_totals_agree_with_the_model_weighted_sums:
receipts plus double counts were GBP 2,646 (2.8e-9) off gov_tax on GBP 935bn,
against a GBP 935 tolerance. Merge-queue groups containing #2319 fail the same
assertion (GBP 994 on GBP 939bn), so it is rounding, not a missing head.
rel=1e-8 still catches any head above about GBP 9,000.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 24, 2026
@MaxGhenis
MaxGhenis added this pull request to the merge queue Oct 24, 2026
Any commits made after this event will not be merged.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Private school VAT is £0 at current law although fees bear VAT from 1 January 2025

1 participant