Skip to content

Update corporate SDLT and business rates statistics and project them with OBR receipts - #2322

Merged
MaxGhenis merged 11 commits into
mainfrom
update-corporate-receipts-statistics
Oct 24, 2026
Merged

MaxGhenis merged 11 commits into
mainfrom
update-corporate-receipts-statistics

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #2320

Summary

corporate_sdlt, business_rates and baseline_business_rates allocate receipt statistics to households by shareholding. Those statistics stopped in 2018-2021 and were held flat in every later year. This PR:

  • updates them from the latest official outturn;
  • adds the England and Wales central rating lists, which councils' figures exclude;
  • projects later years with the OBR's March 2026 receipts forecasts.

In 2026-27:

  • Corporate SDLT rises from £3.13bn to £5.98bn.
  • Business rates rise from £31.73bn to £38.04bn.
  • gov_tax and household_tax rise by £9.16bn, and household net income falls by the same amount. The rise is £4.63bn in 2025-26 and £17.14bn in 2030-31.
  • HBAI income and all four poverty rates are unchanged.

Every figure comes from the 11 October real runs on policyengine-uk-data 1.58.0, shown below. Weighted corporate_sdlt and business_rates equal their statistics on any dataset, because shareholding divides each household's corporate wealth by the weighted total, so the national change is the same on Microcosm; only its distribution across households differs. Recomputed from the parameters at this head, it is unchanged in every year (see "Stack update").

Known overlap. £2.85bn of the 2026-27 change is corporate SDLT, which overlaps household SDLT until policyengine-uk-data#564 lands; see "SDLT calibration overlap" below.

#2235 (corporate SDLT counted once) merged on 22 October, and this PR now targets main. #2342, the EFO receipts importer, is stacked on it.

Sources

Every value was read from the published file. extract_values.py regenerates them all with sheet and cell references. A separate blind extraction, which was not shown these values, read 666 cells from the same publications, and every value it covers matches. Where it found later revisions or extra series, they are adopted below. It did not cover the England central list. Its seven accounts were checked against the published PDFs: each account's prior-year column equals the previous account's figure, and the round-2 reviewer confirmed 2023-24 to 2025-26 on gov.uk.

Series Source Measure Latest outturn
Corporate and household SDLT (receipts, transactions, values) HMRC Annual Stamp Tax Statistics. Tables 8a/8b, 2024 to 2025 edition (corrected March 2026), for 2023-24 and 2024-25. Tables 6a/6b, 2023 to 2024 edition, for 2021-22 and 2022-23. Historic tables 6a/6b for 2019-20 and 2020-21. "Other buyers" (non-natural persons: companies, partnerships, collective investment schemes) vs individuals. Transactions of £40,000 or more, England and NI. 2024-25: £1,230m residential, £3,260m non-residential
England, local lists MHCLG NNDR3, 2025 to 2026 release, Table 1. 2019-20 and 2020-21 come from MHCLG's November 2025 revised underlying data. Non-domestic rating income from the rates retention scheme, the release's headline 2025-26 (provisional): £27,591m
England, central list MHCLG Main Non-Domestic Rating Accounts (HC papers), 2019-20 to 2025-26 Amounts received from ratepayers on the central list 2025-26: £2,103m
Scotland Scottish Government, Non-domestic rates income statistics (August 2026), Table 1 Contributable amount from the latest outturn return: audited to 2021-22, provisional after 2025-26 (provisional): £3,079m
Wales, local lists StatsWales, Non-domestic rates actuals Contribution to the pool 2024-25: £980m
Wales, central list StatsWales, Non-domestic rates central list Total rates received, Wales 2024-25: £105m
Northern Ireland Land & Property Services (OpenDataNI), Rates paid by District Council and Sector Non-domestic rates paid in the rating year 2025-26: £766m
Projection OBR March 2026 EFO, detailed receipts tables 3.7 (SDLT by property type), 3.8 (Business rates, cash) and 3.2 (Northern Ireland business rates). The 2023-24 base comes from the March 2025 EFO. Ratios of the published levels —

Checks.

  • The existing 2019-20 and 2020-21 SDLT values match HMRC's historic tables exactly.
  • The OBR's SDLT outturn by property type equals HMRC's all-buyer totals:
    • 2024-25: £10,380m residential and £3,505m non-residential;
    • 2023-24, in the March 2025 EFO: £8,570m and £3,045m.
  • The England, Scotland and Wales series, local and central lists together, cover the OBR's Business rates line within 1% in 2024-25 and 2025-26. A test checks both years within 2%.
    • 2024-25: £32.69bn against £32.38bn;
    • 2025-26: £33.91bn against £34.05bn;
    • 2023-24: £31.06bn against £29.60bn in the March 2025 EFO, or +4.9%. England's local-list income is an accounting measure, while the OBR line is cash.

What was wrong with the old values

Old value Problem
Corporate SDLT 2020-21 (£3,130m) A Covid year, held flat. 2024-25 is £4,490m.
England 2021-01-01 £27,222m Not MHCLG's outturn, which is £20,448m for 2021-22. The central list (£1.8-2.1bn a year) was missing.
Scotland 2020, 2021 Mid-year estimates.
Wales 2020 £1,053m From StatsWales' NDR estimates table (per its reference), not outturn. The central list was missing.
Northern Ireland 2018 £1,334m Total NI rates: district £590m plus regional £744m, domestic and non-domestic together. Its source (2019 Review of Business Rates terms of reference) says about half is non-domestic. So business_rates contained NI domestic rates, which domestic_rates already charges. LPS's total less domestic equals its non-domestic series in every year to within £1; a test enforces this.

Projection

The new series sit in gov.economic_assumptions.yoy_growth.obr:

  • stamp_duty_land_tax.residential and stamp_duty_land_tax.non_residential, from Table 3.7;
  • business_rates.great_britain, from Table 3.8;
  • business_rates.northern_ireland, from Table 3.2.

Each value is the ratio of consecutive published levels, to six decimals:

  • 2025-2030 is the forecast.
  • From 2031 each series follows average_earnings's long-run path, because the OBR forecasts receipts only to 2030-31.
  • 2024 is outturn growth. It enters no projection; it anchors the index at 2024 for statistics whose latest outturn is 2024-25. The YAML says so.
  • The economic-assumption indices stop at 2039, so every projected statistic is flat in cash terms from 2039-40. That is documented and tested.

Each outturn statistic declares uprating:, and core uprating scales its last outturn value by the index ratio:

  • SDLT. Each buyer type keeps its 2024-25 share of its property type's receipts, applied to the OBR forecast. In 2026-27 that is £1,230m × 13.4289/10.380 + £3,260m × 4.7213/3.505 = £5,982.5m. The YAML states the assumption: shares are held, and allocating "other buyers" to UK households by shareholding is a modelling convention.
  • Business rates. Each series grows from its own latest outturn with its OBR line:
    • England, Scotland and Wales, local and central lists, use Business rates;
    • Northern Ireland uses Northern Ireland business rates.
    • Because the GB series now cover the same receipts as the OBR line, to within 1% in 2024-25 and 2025-26, its growth applies to a comparable base.

Why growth rates in yoy_growth rather than levels elsewhere: the projection then behaves like the model's other OBR series. In particular, no_economic_assumptions holds it at the latest outturn, which is tested.

Caveats

  • The OBR's profile. This PR takes the OBR forecast as published:
    • non-residential SDLT grows 28.5% in 2026-27;
    • the Business rates line grows 9.9% in 2026-27, 8.5% in 2029-30 and 0.1% in 2030-31.
  • NNDR1. Councils' NNDR1 2026-27 forecast of England's local-list net rates yield is 8.4% above the 2025-26 outturn (£30.55bn against £28.19bn). The OBR's line grows 9.9%. The difference, applied to England's local lists, is about £0.4bn in 2026-27. NNDR1 covers local lists only, and from 2026-27 its "rating income" includes £6.5bn of Section 31 grant. The OBR forecast covers both lists and is used here.
  • Accrued basis. The OBR's accrued Business rates line (Annex Table A.5) grows within 0.1 percentage points of the cash line in every year.
£bn Old (all years) 2024-25 2025-26 2026-27 2030-31
Corporate SDLT 3.130 4.490 4.808 5.983 8.866
England, local lists 27.222 26.397 27.591 30.315 34.406
England, central list — 2.064 2.103 2.310 2.622
Scotland 2.123 3.146 3.079 3.383 3.840
Wales, local lists 1.053 0.980 1.031 1.133 1.285
Wales, central list — 0.105 0.110 0.121 0.137
Northern Ireland 1.334 0.741 0.766 0.782 0.843
Business rates total 31.732 33.434 34.680 38.043 43.134

2024-25 is outturn. 2025-26 is outturn except for Wales, which is projected. Later years are projected.

Data notes, recorded in the YAML

  • Shareholding convention. business_rates allocates every list's receipts by shareholding. That includes ratepayers such as Network Rail (£10.5m) and Dwr Cymru (£17.0m) on the Welsh central list in 2024-25.
  • Wales, Covid years. The contribution to the pool was 1.41 and 1.38 times the councils' net collectable debit in 2020-21 and 2021-22, against 0.96 to 1.02 in other years. So those two years appear to include retail, leisure and hospitality relief that ratepayers did not pay. The 2024-25 base is in the normal range.
  • NI before 2020-21. NI's series starts in 2020-21, a rates-holiday year, so programs.yaml now verifies from 2020.

Interactions checked

  • corporate_tax_incidence (= corporate_sdlt + business_rates). hbai_excluded_income (= −corporate_tax_incidence). baseline_business_rates now sums the six series; business_rates shares its formula. All move exactly with the statistics: the microsimulation test checks weighted totals, and the real runs show identical changes. HBAI household net income doesn't change, so poverty doesn't either.
  • Fiscal partition (Count corporate SDLT once and let SDLT abolition remove all of it #2235). The heads and lists are unchanged, and the partition tests pass on the merged tree (see "Stack update"). The PR adds two data_notes:
    • business_rates: GB £37.26bn against the OBR's £37.41bn in 2026-27. NI is £0.78bn against the OBR's £0.40bn NI line, which the OBR records under other taxes.
    • sdlt_household: the calibration overlap, below.
  • SDLT calibration overlap. This PR raises the overlap with uk-data's calibration (policyengine-uk-data#564).
    • At tag 1.58.0, targets/sources/obr.py locates the current-receipts sheet by title and maps the OBR's total "Stamp duty land tax" to household stamp_duty_land_tax.
    • So the household target includes the companies' share that corporate_sdlt adds again.
    • In 2026-27, household plus corporate SDLT is £23.29bn against the OBR's £18.15bn. That was £20.44bn before this PR.
    • The corporate figure is now right. Add page to carbon tax documentation #564 sets out the target fix (OBR total less this corporate statistic), for the batched data release.
  • corporate_sdlt.yaml. Expectations move from £3,130 to £5,982.55 per 1e-6 of shareholding, derived in the file header from the HMRC and OBR cells. Margins are £0.50, because the model chains six-decimal growth into a five-decimal index and lands within £0.10.
  • programs.yaml. Business rates is now verified 2020-2030, with notes on the method. It was 2019-2021, "Parameters need updating beyond 2021".

Invariants (tests in test_corporate_receipts_statistics.py)

  1. Published. Every outturn value equals the published figure, at published precision. NI equals LPS total rates paid less domestic, within £1.
  2. Coverage. The England, Scotland and Wales series sum to within 2% of the OBR's Business rates line in 2024-25 and 2025-26.
  3. Ratio. Every growth value for 2024-2030 equals the ratio of consecutive published OBR levels, within 5e-7. From 2031 it equals average_earnings growth through 2045.
  4. Tracking. Each projected statistic equals its last outturn × OBR(t)/OBR(last), within 2e-5 relative, for every year to 2030.
  5. Shares (Hypothesis, any two years 2025-2039). Each buyer type keeps its 2024-25 share of its property type's SDLT. The five GB series keep their shares of the GB total.
  6. Horizon. Every statistic rises into 2039-40 and is flat after it.
  7. Positive and finite. Every statistic is positive and finite for 2019-2049.
  8. Allocated once. On a microsimulation in 2025, 2026 and 2030:
    • weighted corporate_sdlt equals the corporate SDLT statistic;
    • weighted business_rates and baseline_business_rates equal the business rates statistic;
    • corporate_tax_incidence is their sum and hbai_excluded_income its negative.
  9. No economic assumptions. Under no_economic_assumptions, both statistics hold at the latest outturn. The test asserts the scenario's cutoff assumption explicitly.

Tests run (11 October, before the stack update)

  • This PR's tests. test_corporate_receipts_statistics.py: 141 passed. stamp_duty/ and excise_integration YAML: 24 passed. Partition tests: 39 passed.
  • Other affected tests (earlier head; this round's changes don't touch them). Every other YAML test touching corporate wealth or these heads: 136 passed. test_sdlt_counted_once_properties.py, test_import_obr_forecasts.py, test_lagged_series.py, test_council_tax_uprating.py, test_threshold_indexation.py and test_fiscal_year_parameters.py: 180 passed.
  • Full CI before the stack update. PR CI then ran only for PRs into main, so it was dispatched manually.

National impact (real runs)

Setup.

  • Data: policyengine-uk-data 1.58.0, enhanced_frs_2024_25.h5, sha256 5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6.
  • Code: base is Count corporate SDLT once and let SDLT abolition remove all of it #2235's head (41e970b). Head is 1477c91; the later commit changes only the partition note.
  • Runtime: both use policyengine-core 3.33.0 and numpy 2.1.3.
  • Runs: 12 Microsimulation runs at current law, 2 versions × 6 years. No scaling.
£bn a year 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31
corporate_sdlt, base → head 3.130 → 4.808 3.130 → 5.983 3.130 → 6.732 3.130 → 7.464 3.130 → 8.205 3.130 → 8.866
business_rates, base → head 31.732 → 34.680 31.732 → 38.043 31.732 → 38.882 31.732 → 39.765 31.732 → 43.074 31.732 → 43.134
Change in gov_tax, household_tax, pre_budget_change_household_tax, gov_balance, corporate_tax_incidence +4.626 +9.163 +10.752 +12.367 +16.416 +17.138
Change in household_net_income (BHC and AHC), hbai_excluded_income −4.626 −9.163 −10.752 −12.366 −16.416 −17.138
Change in hbai_household_net_income, stamp_duty_land_tax, expected_sdlt 0 0 0 0 0 0

Checks, every year.

  • Weighted corporate_sdlt and business_rates equal their statistics to within £0.01m.
  • Shareholding sums to 1.000000.
  • No non-finite outputs in either version.
  • BHC and AHC poverty, absolute and relative, are unchanged to four decimal places.

Distribution. Head − base, household net income per household, weighted mean £, by decile:

D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 All
2026-27 −134.36 −176.31 −156.16 −253.48 −237.44 −241.30 −273.18 −333.93 −481.76 −653.22 −292.17
2030-31 −303.86 −304.93 −301.14 −392.62 −429.12 −415.18 −506.31 −642.23 −916.29 −1,194.23 −537.45

Both statistics are allocated by shareholding, so the change grows with corporate wealth.

Not changed here (follow-ups)

  • SDLT calibration target: policyengine-uk-data#564, for the batched data release.
  • OBR import tool. Refresh the OBR receipts growth series from the EFO receipts tables #2342 makes import_obr_forecasts.py refresh these growth series from a new EFO. It is stacked on this PR.
  • Reconciliation. Reconciling the NI series with the OBR's NI line, and the remaining GB differences, is a chip.
  • Statistics no formula reads. residential.household.first_time_buyers_relief and transactions_by_age (2020-21) are kept verbatim.

Review

Round 1 (independent review, Opus 5.5): REQUEST_CHANGES, with 14 findings. The responses, finding by finding:

  1. Central lists. Added for England and Wales, and the GB coverage test was added.
  2. Wales relief. Checked against Wales's net collectable debit: the 2024-25 base is in the normal range, and the Covid-year overstatement is documented.
  3. SDLT overlap. The uk-data claim is verified at tag 1.58.0, which locates the sheet by title. The reviewer read an older checkout. The overlap is now stated in the summary.
  4. England 2026-27 growth. Coverage now matches the OBR line, and the NNDR1 comparison is stated with its limits.
  5. Impact head. Rerun on 1477c91.
  6. 2024 growth row. Documented as an index anchor.
  7. Flat after 2039. Documented and tested.
  8. NI start year. NI is documented as starting in 2020-21, and verification now starts in 2020.
  9. Scenario cutoff. The cutoff is guarded explicitly.
  10. NI test. Strengthened to total less domestic.
  11. Independent extraction. Resolved by the blind extraction.
  12. Body cleanup. Done.
  13. References. Updated, and the collector comments corrected.
  14. Shares assumption. Stated in the YAML.

Round 2 (same reviewer): APPROVE. All four major findings are resolved.

  • The remaining minor points and nits are addressed in 2f951f8, a comment-only change, and in this description: the central-list verification note, the shareholding convention, 2023-24 coverage, the direct NNDR1 comparison, the OBR's 2029-30 step and the cleanups.
  • The run JSONs record package versions but not the git SHA; the head SHA is stated under Setup.

Round 3 (pending): the UK hub's independent review at the final head.

Stack update (23 October 2026)

Merges (no history rewritten):

Two test fixes.

376f10307: test_weighted_incidence.py (added to main with #2235) sets the four business rates series so that corporate incidence is exactly £150 × shareholding. This PR adds ENGLAND_CENTRAL_LIST and WALES_CENTRAL_LIST to that sum, so on the merged tree they kept their real values (about £2.21bn in 2025) and 5 of the test's 19 cases failed (2.2e7 against 1.5). The test now sets both central lists to zero, and all 19 cases pass.

f6ed43708: test_aggregate_impact_certified.py::test_head_totals_agree_with_the_model_weighted_sums checked that the partition's heads plus declared double counts equal gov_tax within a relative 1e-9. The model sums gov_tax for each household in float32 (policyengine-core's float type), while the measurement sums the heads in float64, so they agree only to float32 rounding. With these statistics, the 2026 totals on 1.58.1 differ by 1.75e-9 (£948,404,896,828 against £948,404,895,169), and CI failed it (run 39915137960, on #2342's branch, which carries this PR). The check now uses report_spec.yaml's identity_relative_tolerance (1e-6). The spec documents that value as the float32 tolerance for identities between weighted totals, and the measurement applies it to its per-household identity checks. This test needs the certified dataset, so CI runs it, not the local runs below.

National change at this head. This is recomputed from the parameters at this head against main (a45baf5e4). With a dataset, shareholding divides each household's corporate wealth by the weighted total, so weighted corporate_sdlt and business_rates equal their statistics on any dataset, Microcosm included. The change in gov_tax and household_tax is therefore the change in the two statistics; only its split across households depends on the data.

£bn 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Corporate SDLT, main → head 3.130 → 4.808 3.130 → 5.983 3.130 → 6.732 3.130 → 7.464 3.130 → 8.205 3.130 → 8.866 3.130 → 9.161
Business rates, main → head 31.732 → 34.680 31.732 → 38.043 31.732 → 38.882 31.732 → 39.765 31.732 → 43.074 31.732 → 43.134 31.732 → 44.566
Change in gov_tax, household_tax +4.626 +9.163 +10.752 +12.367 +16.416 +17.138 +18.864

These match the 11 October real runs to the £m in every year they share. They also match CI's Aggregate impact report at 376f10307 (base main c65bced64, policyengine-uk-data 1.58.1) in every year, which reports 0 checks broken and no change in any year to poverty rates, people in poverty or inequality. The one failing check, negative VAT for 76 households (policyengine-uk-data#565), fails on both sides.

Tests at this head (local, foreground, -n 2, host load 40–90; CI runs the full suite):

  • test_corporate_receipts_statistics.py: 141 passed, including the 4 cases that build a Microsimulation on a synthetic dataset.
  • test_weighted_incidence.py: 19 passed. Before the fix, 5 failed.
  • test_fiscal_partition.py: 39 passed.
  • test_sdlt_counted_once_properties.py and aggregate_impact/test_aggregate_impact_measure.py: 45 passed.
  • test_program_registry.py, test_parameter_metadata.py, test_parameter_descriptions.py and test_no_economic_assumptions.py: 121 passed.
  • YAML tests in stamp_duty/ and excise_integration.yaml: 46 passed.
  • ruff format --check . and ruff check on the touched Python both pass.

Reproducer: policyengine_uk/tests/test_corporate_receipts_statistics.py::test_sdlt_receipts_match_hmrc_tables, policyengine_uk/tests/test_corporate_receipts_statistics.py::test_business_rates_match_published_outturn, policyengine_uk/tests/test_corporate_receipts_statistics.py::test_projection_tracks_obr_receipts, policyengine_uk/tests/policy/baseline/gov/hmrc/stamp_duty/corporate_sdlt.yaml

axiom: n/a: official receipts statistics and OBR forecasts used for corporate incidence, not law

🤖 Generated with Claude Code

…with OBR receipts

Corporate SDLT (HMRC buyer-type tables) now runs to 2024-25 and business
rates to 2025-26 (Wales 2024-25); both grow with OBR March 2026 receipts
forecasts by property type / nation. NI business rates were total rates
(domestic and non-domestic); they are now LPS non-domestic rates paid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 4 commits October 11, 2026 13:09
…tions

- test_corporate_receipts_statistics: outturn equals the published tables,
  growth equals ratios of the OBR's published receipts, projections track
  them, shares within each line are invariant (Hypothesis), and the
  microsimulation allocates each statistic once (and holds it at the latest
  outturn under no_economic_assumptions).
- corporate_sdlt.yaml: expectations for the 2026-27 statistic (£5,982.55 per
  1e-6 shareholding), derived from the HMRC and OBR cells.
- programs.yaml: business rates verified to 2030.
- fiscal_partition.yaml: data notes on the business rates head (includes NI,
  which the OBR records under other taxes) and the household SDLT head
  (calibrated to the OBR total; policyengine-uk-data#564).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s; address review

- England central list (Main Non-Domestic Rating Accounts) and Wales central
  list (StatsWales), which councils' figures exclude; GB statistics now sum
  to within 1% of the OBR's Business rates line in 2024-25 and 2025-26.
- England 2019-20 and 2020-21 from MHCLG's November 2025 revised data.
- Document the Welsh Covid-year relief treatment, NI's 2020-21 start, the
  2039 index horizon, the 2024 index anchor and the SDLT shares assumption.
- Tests: central lists, NI = LPS total less domestic, GB coverage of the OBR
  line, flat after 2039, explicit no_economic_assumptions cutoff guard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
…R lines

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… rates statistics

Comment-only (review round 2, findings 2 and 3).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 3 commits October 23, 2026 00:25
#2235 merged main and fixed its partition tests before landing. One
conflict, in the vat head's data note in fiscal_partition.yaml: keep
#2235's wording, which reports only the household counts. This PR's own
data notes on business_rates and sdlt_household are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#2235 landed on main as 0def167, so this PR now targets main. No
conflicts. Main's changes since #2235's head touch no statistic, receipts
growth series or index this PR reads: the yoy_growth edits are to
consumer_price_index_ahc, mortgage_interest and social_rent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test_weighted_incidence.py (new on main via #2235's merge) sets the four
business rates series so corporate incidence is £150 times shareholding.
This PR adds ENGLAND_CENTRAL_LIST and WALES_CENTRAL_LIST to the sum, so
they kept their real values (about £2.21bn in 2025) and five cases failed
with 2.2e7 against 1.5. Set both to zero with the others.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 23, 2026
#2322 now carries #2235's final head and main (a45baf5). One conflict,
in the economic assumptions README's EFO refresh checklist: main added
step 6 (move PROJECTION_END_YEAR on) where this PR added step 6 (refresh
the receipts series). Keep both: receipts refresh as step 6, projection
horizon as step 7, then the importer example. The importer, its tests and
the yoy_growth.yaml comments merge without conflict; main has not touched
the importer or its tests since this PR branched.

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

MaxGhenis commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator Author

Hand-off to the UK hub (build job 20261023-001751-stack-2322-b)

Head: f6ed43708, fast-forwards from b561631f4. Two merges and two test fixes; no history rewritten.

Tests: these ran locally at the head, in the foreground with -n 2, and all passed:

  • the PR's statistics tests: 141;
  • the weighted incidence tests: 19;
  • the partition tests: 39;
  • the SDLT counted-once and aggregate-impact measure tests: 45;
  • the parameter-wide tests: 121;
  • the stamp_duty and excise_integration YAML tests: 46.

Ruff is clean, and the trusted fix-evidence checker passes on the body. CI: at 09:50Z, when this job ended, CI at f6ed43708 showed Aggregate impact, Test / YAML, Lint, Fix evidence, Changes and smoke-import py3.11/3.12 passing. The five Python shards, the docs build and smoke-import py3.13/3.14 were still queued or running. This head fixes the identity-tolerance failure that #2342's run hit in shard 3/5. That run's only other failure, shard 4/5, was in importer code this PR doesn't contain, and it is fixed on #2342. Its shards 1, 2 and 5 passed, and so did this PR's shard 2/5 at 376f10307. The PR is still a draft: the hub marks it ready once gh pr checks 2322 exits 0.

Impact. Recomputed from parameters at this head against main, the change in gov_tax and household_tax is +£4.626bn in 2025-26, +£9.163bn in 2026-27 and +£17.138bn in 2030-31. That matches the 11 October real runs. Weighted totals equal the statistics on any dataset, Microcosm included, because shareholding divides by its weighted total. HBAI income and poverty don't change. CI's Aggregate impact at 376f10307 passed and matches these figures in every year (base c65bced64, uk-data 1.58.1). It reports 0 checks broken and no change in any year to poverty or inequality; only negative VAT (uk-data#565) fails, on both sides.

Open items

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Aggregate impact on certified data: pass

Base c65bced644 against head 6a803a610b, 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: 210 (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.

Moves flagged for review

Measure Year Base Head Change
Business rates 2031-32 £31.73bn £44.57bn +£12.83bn
Business rates 2030-31 £31.73bn £43.13bn +£11.40bn
Business rates 2029-30 £31.73bn £43.07bn +£11.34bn
Business rates 2028-29 £31.73bn £39.76bn +£8.03bn
Business rates 2027-28 £31.73bn £38.88bn +£7.15bn
Business rates 2026-27 £31.73bn £38.04bn +£6.31bn
Stamp duty land tax paid by companies 2031-32 £3.13bn £9.16bn +£6.03bn
Stamp duty land tax paid by companies 2030-31 £3.13bn £8.87bn +£5.74bn
Stamp duty land tax paid by companies 2029-30 £3.13bn £8.21bn +£5.08bn
Stamp duty land tax paid by companies 2028-29 £3.13bn £7.46bn +£4.33bn
Stamp duty land tax paid by companies 2027-28 £3.13bn £6.73bn +£3.60bn
Government balance, each receipt once 2031-32 £534.65bn £553.52bn +£18.86bn
gov_balance 2031-32 £534.65bn £553.52bn +£18.86bn
Government balance, each receipt once 2029-30 £475.10bn £491.51bn +£16.42bn
gov_balance 2029-30 £475.10bn £491.51bn +£16.42bn
Government balance, each receipt once 2030-31 £502.84bn £519.98bn +£17.14bn
gov_balance 2030-31 £502.84bn £519.98bn +£17.14bn
pre_budget_change_household_tax 2031-32 £631.05bn £649.91bn +£18.86bn
Business rates 2025-26 £31.73bn £34.68bn +£2.95bn
household_tax 2031-32 £640.95bn £659.81bn +£18.86bn
Stamp duty land tax paid by companies 2026-27 £3.13bn £5.98bn +£2.85bn
pre_budget_change_household_tax 2030-31 £604.69bn £621.83bn +£17.14bn
pre_budget_change_household_tax 2029-30 £580.51bn £596.92bn +£16.42bn
household_tax 2030-31 £614.24bn £631.37bn +£17.14bn
household_tax 2029-30 £589.79bn £606.20bn +£16.42bn
Government balance, each receipt once 2028-29 £447.41bn £459.78bn +£12.37bn
gov_balance 2028-29 £447.41bn £459.78bn +£12.37bn
Government balance, each receipt once 2027-28 £421.35bn £432.11bn +£10.75bn
gov_balance 2027-28 £421.35bn £432.11bn +£10.75bn
Government balance, each receipt once 2026-27 £392.28bn £401.44bn +£9.16bn
gov_balance 2026-27 £392.28bn £401.44bn +£9.16bn
pre_budget_change_household_tax 2028-29 £558.54bn £570.90bn +£12.37bn
household_tax 2028-29 £567.58bn £579.94bn +£12.37bn
pre_budget_change_household_tax 2027-28 £537.04bn £547.79bn +£10.75bn
household_tax 2027-28 £545.39bn £556.14bn +£10.75bn
Decile 1: mean household_net_income per household 2031-32 £18,743 £18,391 -£351
pre_budget_change_household_tax 2026-27 £511.41bn £520.57bn +£9.16bn
household_tax 2026-27 £519.53bn £528.69bn +£9.16bn
Decile 1: mean household_net_income per household 2030-31 £18,583 £18,261 -£322
Decile 1: mean household_net_income per household 2029-30 £18,395 £18,085 -£310

170 more flags are in the report artifact.

Receipts by tax head

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Business rates +£2.95bn +£6.31bn +£7.15bn +£8.03bn +£11.34bn +£11.40bn +£12.83bn
Stamp duty land tax paid by companies +£1.68bn +£2.85bn +£3.60bn +£4.33bn +£5.08bn +£5.74bn +£6.03bn

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 +£4.63bn +£9.16bn +£10.75bn +£12.37bn +£16.42bn +£17.14bn +£18.86bn
Government balance, each receipt once +£4.63bn † +£9.16bn † +£10.75bn † +£12.37bn † +£16.42bn † +£17.14bn † +£18.86bn †

Model totals

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
gov_tax +£4.63bn +£9.16bn +£10.75bn +£12.37bn +£16.42bn +£17.14bn +£18.86bn
household_tax +£4.63bn +£9.16bn +£10.75bn +£12.37bn +£16.42bn +£17.14bn +£18.86bn
pre_budget_change_household_tax +£4.63bn +£9.16bn +£10.75bn +£12.37bn +£16.42bn +£17.14bn +£18.86bn
gov_balance +£4.63bn † +£9.16bn † +£10.75bn † +£12.37bn † +£16.42bn † +£17.14bn † +£18.86bn †

Household income totals

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Household net income -£4.63bn † -£9.16bn † -£10.75bn † -£12.37bn † -£16.42bn † -£17.14bn † -£18.86bn †

Mean household net income in each side's own deciles

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Decile 1: mean household_net_income per household -£64 † -£130 † -£205 † -£235 † -£310 † -£322 † -£351 †
Decile 2: mean household_net_income per household -£90 † -£177 † -£208 † -£238 † -£314 † -£327 † -£340 †
Decile 3: mean household_net_income per household -£86 † -£168 † -£197 † -£229 † -£298 † -£320 † -£377 †
Decile 4: mean household_net_income per household -£130 † -£254 † -£249 † -£286 † -£370 † -£372 † -£401 †
Decile 5: mean household_net_income per household -£125 † -£251 † -£285 † -£327 † -£439 † -£458 † -£494 †
Decile 6: mean household_net_income per household -£114 † -£223 † -£255 † -£267 † -£344 † -£361 † -£406 †
Decile 7: mean household_net_income per household -£133 † -£266 † -£303 † -£361 † -£491 † -£504 † -£546 †
Decile 8: mean household_net_income per household -£178 † -£341 † -£400 † -£476 † -£627 † -£649 † -£711 †
Decile 9: mean household_net_income per household -£232 † -£468 † -£555 † -£643 † -£853 † -£889 † -£992 †
Decile 10: mean household_net_income per household -£340 † -£668 † -£777 † -£874 † -£1,159 † -£1,202 † -£1,300 †

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 -£985 +£3,014 +£2,738 +£90 -£33 -£860 +£1,713
Raise higher rate by 1pp +£116 -£94 -£1,057 +£3,362 +£3,348 -£858 +£1,465
Raise personal allowance by ~800GBP/year -£970 -£504 +£46 -£244 +£512 +£1,253 +£5,929
Raise child benefit by 25GBP/week per additional child -£9 +£20 -£1,066 -£7 -£507 -£276 -£671
Reduce Universal Credit taper rate to 20% -£5 +£221 -£72 -£103 +£96 -£360 -£58
Raise Class 1 main employee NICs rate to 10% +£842 -£23 +£923 -£1,551 +£2,462 +£257 +£2,178
Raise VAT standard rate by 2pp -£861 +£3,321 +£655 -£473 +£3,666 +£1,835 +£4,123
Raise additional rate by 3pp -£546 +£644 -£220 -£357 +£1,128 suppressed suppressed
Raise the Universal Credit standard allowance by 10% -£16 -£179 -£111 -£89 +£157 +£156 -£53
Raise the State Pension by 10% -£271 +£744 +£536 +£131 +£44 -£229 +£1

Standard reforms: change in each reform's target

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Raise additional rate by 3pp: change in income_tax 0 0 0 0 0 suppressed suppressed

Household net income by decile

Mean change in household net income per household, and as a share of the decile's base income; households stay in the base run's deciles.

Base decile 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Decile 1 -£64 (-0.4%) -£130 (-0.7%) -£205 (-1.1%) -£235 (-1.3%) -£310 (-1.7%) -£322 (-1.7%) -£351 (-1.9%)
Decile 2 -£90 (-0.3%) -£177 (-0.6%) -£208 (-0.7%) -£238 (-0.8%) -£314 (-1.1%) -£327 (-1.1%) -£340 (-1.1%)
Decile 3 -£86 (-0.3%) -£168 (-0.5%) -£197 (-0.5%) -£229 (-0.6%) -£298 (-0.8%) -£320 (-0.9%) -£377 (-1.0%)
Decile 4 -£130 (-0.3%) -£254 (-0.6%) -£249 (-0.6%) -£286 (-0.7%) -£370 (-0.9%) -£372 (-0.8%) -£401 (-0.9%)
Decile 5 -£125 (-0.3%) -£251 (-0.6%) -£285 (-0.6%) -£327 (-0.7%) -£439 (-0.9%) -£458 (-0.9%) -£494 (-1.0%)
Decile 6 -£114 (-0.2%) -£223 (-0.4%) -£255 (-0.5%) -£267 (-0.5%) -£344 (-0.7%) -£361 (-0.7%) -£406 (-0.7%)
Decile 7 -£133 (-0.2%) -£266 (-0.5%) -£303 (-0.5%) -£361 (-0.6%) -£491 (-0.8%) -£504 (-0.8%) -£546 (-0.9%)
Decile 8 -£178 (-0.3%) -£341 (-0.5%) -£400 (-0.6%) -£476 (-0.7%) -£627 (-0.8%) -£649 (-0.9%) -£711 (-0.9%)
Decile 9 -£232 (-0.3%) -£468 (-0.6%) -£555 (-0.7%) -£643 (-0.8%) -£853 (-1.0%) -£889 (-1.0%) -£992 (-1.1%)
Decile 10 -£340 (-0.3%) -£668 (-0.6%) -£777 (-0.6%) -£874 (-0.7%) -£1,159 (-0.9%) -£1,202 (-0.9%) -£1,300 (-1.0%)
all -£148 (-0.3%) -£293 (-0.5%) -£342 (-0.6%) -£392 (-0.7%) -£518 (-0.9%) -£539 (-0.9%) -£591 (-1.0%)
Year People gaining over £1 People losing over £1
2025-26 0.0% 76.8%
2026-27 0.0% 77.8%
2027-28 0.0% 78.2%
2028-29 0.0% 78.5%
2029-30 0.0% 78.9%
2030-31 0.0% 78.9%
2031-32 0.0% 78.9%

No change in any year: population; poverty rates; people in poverty; inequality.

Checks failing on both base and head (1)
  • VAT is never negative (sign:vat): 2025-26: 76 units below zero, a weighted £-54,797,972 in total; 2026-27: 76 units below zero, a weighted £-56,271,349 in total; 2027-28: 76 units below zero, a weighted £-57,609,146 in total
Counted-once check

Each of 84 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 c65bced644 uk 2.148.3 (files d7572c3e5c6c), core 3.33.2, py 3.13.17 aarch64 31784e87dc6a d4c1e9f08160 1540.25s
head #2322 merged into main 6a803a610b uk 2.148.3 (files 27dcb09c298f), core 3.33.2, py 3.13.17 aarch64 31784e87dc6a 5ea8ef7e60f1 1536.86s

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 £253.71bn £260.53bn £266.72bn £273.14bn £279.83bn £286.71bn £293.71bn
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 £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 £34.68bn £38.04bn £38.88bn £39.76bn £43.07bn £43.13bn £44.57bn
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 £4.81bn £5.98bn £6.73bn £7.46bn £8.21bn £8.87bn £9.16bn
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) £2.12bn £2.18bn £2.23bn £2.28bn £2.33bn £2.39bn £2.45bn
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,186k 3,211k 3,226k 3,245k 3,264k 3,281k 3,293k
Employment and Support Allowance (income-related) 187k 188k 188k 189k 190k 190k 191k
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 £904.01bn £948.40bn £987.00bn £1,021.82bn £1,062.15bn £1,099.81bn £1,142.41bn
Government spending £531.92bn † £546.96bn † £554.90bn † £562.04bn † £570.63bn † £579.83bn † £588.90bn †
Government balance, each receipt once £372.09bn † £401.44bn † £432.11bn † £459.78bn † £491.51bn † £519.98bn † £553.52bn †
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 £904.01bn £948.40bn £987.00bn £1,021.82bn £1,062.15bn £1,099.81bn £1,142.41bn
household_tax £497.66bn £528.69bn £556.14bn £579.94bn £606.20bn £631.37bn £659.81bn
pre_budget_change_household_tax £489.83bn £520.57bn £547.79bn £570.90bn £596.92bn £621.83bn £649.91bn
gov_spending £531.92bn † £546.96bn † £554.90bn † £562.04bn † £570.63bn † £579.83bn † £588.90bn †
household_benefits £531.92bn † £546.96bn † £554.90bn † £562.04bn † £570.63bn † £579.83bn † £588.90bn †
gov_balance £372.09bn † £401.44bn † £432.11bn † £459.78bn † £491.51bn † £519.98bn † £553.52bn †
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,652.05bn † £1,696.76bn † £1,728.55bn † £1,761.15bn † £1,793.23bn † £1,834.11bn † £1,884.02bn †
Household net income (HBAI definition) £1,463.15bn £1,510.70bn £1,544.54bn £1,577.63bn £1,611.73bn £1,650.77bn £1,701.20bn
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.7% 15.8% 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 13.9% 13.5% 14.0% 14.1% 14.2% 14.3% 14.2%
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.5% 20.8% 21.4% 21.6% 21.9% 22.2% 22.2%
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.8% 19.6% 20.3% 20.4% 20.8% 21.0% 21.0%
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.2% 16.5% 16.5% 16.6% 16.4% 16.5% 16.6%
Relative poverty, before housing costs: children 26.4% 23.7% 23.4% 23.4% 22.9% 23.0% 23.4%
Relative poverty, before housing costs: working-age adults 14.6% 14.4% 14.6% 14.8% 14.7% 14.8% 14.9%
Relative poverty, before housing costs: pensioners 15.0% 14.8% 14.1% 14.2% 14.0% 14.1% 14.2%
Relative poverty, after housing costs: everyone 21.7% 21.1% 21.3% 21.3% 21.4% 21.5% 21.9%
Relative poverty, after housing costs: children 33.5% 31.3% 31.1% 31.0% 31.0% 31.1% 31.7%
Relative poverty, after housing costs: working-age adults 19.9% 19.8% 20.2% 20.3% 20.4% 20.5% 20.8%
Relative poverty, after housing costs: pensioners 13.0% 12.7% 12.6% 12.3% 12.2% 12.2% 13.1%
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,270k 10,578k 10,858k 11,007k 11,103k 11,238k 11,252k
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,940k 5,792k 6,071k 6,182k 6,234k 6,302k 6,314k
Absolute poverty, before housing costs: pensioners 1,634k 1,559k 1,519k 1,540k 1,550k 1,566k 1,575k
Absolute poverty, after housing costs: everyone 14,972k 14,539k 14,956k 15,179k 15,479k 15,741k 15,843k
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,445k 8,399k 8,796k 8,942k 9,125k 9,271k 9,320k
Absolute poverty, after housing costs: pensioners 1,521k 1,484k 1,452k 1,485k 1,520k 1,539k 1,550k
Relative poverty, before housing costs: everyone 11,980k 11,485k 11,528k 11,641k 11,552k 11,677k 11,832k
Relative poverty, before housing costs: children 3,967k 3,570k 3,543k 3,556k 3,491k 3,522k 3,593k
Relative poverty, before housing costs: working-age adults 6,227k 6,161k 6,359k 6,462k 6,453k 6,536k 6,596k
Relative poverty, before housing costs: pensioners 1,785k 1,754k 1,627k 1,623k 1,608k 1,619k 1,644k
Relative poverty, after housing costs: everyone 15,057k 14,705k 14,915k 14,985k 15,110k 15,227k 15,621k
Relative poverty, after housing costs: children 5,024k 4,718k 4,698k 4,701k 4,731k 4,765k 4,874k
Relative poverty, after housing costs: working-age adults 8,480k 8,486k 8,769k 8,885k 8,981k 9,056k 9,230k
Relative poverty, after housing costs: pensioners 1,552k 1,501k 1,448k 1,398k 1,398k 1,405k 1,516k
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.3087 0.3060 0.3067 0.3074 0.3079 0.3085 0.3096
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,769 † £17,885 † £17,821 † £17,824 † £18,085 † £18,261 † £18,391 †
Decile 2: mean household_net_income per household £28,044 † £28,912 † £28,617 † £29,001 † £29,249 † £29,618 † £30,135 †
Decile 3: mean household_net_income per household £34,369 † £35,512 † £36,068 † £36,550 † £36,779 † £37,306 † £38,134 †
Decile 4: mean household_net_income per household £39,268 † £40,789 † £41,787 † £42,491 † £43,138 † £43,994 † £44,271 †
Decile 5: mean household_net_income per household £43,573 † £44,768 † £45,835 † £46,477 † £47,380 † £48,347 † £49,427 †
Decile 6: mean household_net_income per household £48,380 † £49,551 † £50,651 † £51,326 † £51,788 † £53,068 † £54,423 †
Decile 7: mean household_net_income per household £56,223 † £57,281 † £58,127 † £58,809 † £59,765 † £60,296 † £61,937 †
Decile 8: mean household_net_income per household £68,639 † £70,062 † £71,336 † £72,541 † £73,745 † £75,231 † £76,891 †
Decile 9: mean household_net_income per household £79,503 † £81,620 † £82,753 † £83,886 † £85,338 † £86,769 † £89,684 †
Decile 10: mean household_net_income per household £117,432 † £119,972 † £121,790 † £123,797 † £125,737 † £128,019 † £130,815 †
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.34bn £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.19bn £-4.30bn £-2.02bn
Raise child benefit by 25GBP/week per additional child £-2.00bn £-1.76bn £-1.58bn £-1.48bn £-1.38bn £-1.28bn £-1.17bn
Reduce Universal Credit taper rate to 20% £-20.49bn £-21.05bn £-21.50bn £-21.94bn £-22.03bn £-22.40bn £-22.87bn
Raise Class 1 main employee NICs rate to 10% £11.07bn £11.51bn £11.84bn £12.14bn £12.49bn £12.83bn £13.23bn
Raise VAT standard rate by 2pp £25.01bn £25.68bn £26.29bn £26.92bn £27.58bn £28.26bn £28.95bn
Raise additional rate by 3pp £2.83bn £3.07bn £3.27bn £3.47bn £3.67bn suppressed suppressed
Raise the Universal Credit standard allowance by 10% £-3.03bn £-3.16bn £-3.28bn £-3.35bn £-3.39bn £-3.44bn £-3.51bn
Raise the State Pension by 10% £-7.81bn £-8.07bn £-7.99bn £-8.11bn £-8.36bn £-8.66bn £-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 £25.01bn £25.68bn £26.29bn £26.92bn £27.58bn £28.26bn £28.95bn
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

test_head_totals_agree_with_the_model_weighted_sums checked that the
partition's heads plus declared double counts equal gov_tax within a
relative 1e-9. The model sums gov_tax for each household in float32,
policyengine-core's float type, while the measurement sums the heads in
float64, so the two agree only to float32 rounding. With this PR's
corporate SDLT and business rates statistics, the 2026 totals on
policyengine-uk-data 1.58.1 differ by 1.75e-9 (948,404,896,828 against
948,404,895,169), and the check failed in CI (#2342's run 39915137960).

Use report_spec.yaml's identity_relative_tolerance (1e-6). The spec
documents it as the tolerance for accounting identities between weighted
totals, set by float32 rounding; the measurement applies the same value
to its per-household identity checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 23, 2026
Brings the certified receipts identity's float32 tolerance from #2322,
which fixes this branch's CI failure in run 39915137960 (Test / Python
3/5, test_head_totals_agree_with_the_model_weighted_sums).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 23, 2026 12:16
@MaxGhenis
MaxGhenis added this pull request to the merge queue Oct 23, 2026
Merged via the queue into main with commit 3e79ee2 Oct 24, 2026
17 of 18 checks passed
@MaxGhenis
MaxGhenis deleted the update-corporate-receipts-statistics branch October 24, 2026 03:40
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Merged by the UK hub (Claude session 8e19f9d5) at head f6ed43708, through the merge queue with the head pinned.

  • What it does: it updates the corporate SDLT and business rates statistics and projects them with OBR receipts growth.
    • It adds England's and Wales's central lists, which were missing.
    • It removes NI domestic rates from business rates, where they overlapped.
    • It projects corporate SDLT by the property-specific SDLT growth, with fixed corporate shares.
    • A hub build merged Count corporate SDLT once and let SDLT abolition remove all of it #2235's final head, then main. It made two test fixes: completing a synthetic incidence fixture, and setting the partition-sum tolerance to the report spec's documented 1e-6 for float32 household sums.
  • Independent review (GPT-6.1 Sol, APPROVE at this exact head):
    • Every source matches the official tables: HMRC buyer-type SDLT, MHCLG NNDR3 and the central-list accounts, the Welsh and NI exports, and Scotland's SLGFS. All 28 growth values match the OBR March 2026 receipts workbook (SHA-256 f65b6cb7…, tables 3.2, 3.7 and 3.8).
    • Both test fixes are justified. Measurement already sums in float64, and the 1e-6 tolerance allows about £0.95m on £948bn against a measured £1,660 gap.
    • Both merges are correct.
    • One nonblocking broken source link (statistics.yaml:52) is being fixed in the stacked Refresh the OBR receipts growth series from the EFO receipts tables #2342.
    • Its local run passed 365 Python and 46 YAML tests.
  • CI: all 16 checks pass at this head. The merge queue re-runs the full suite against current main.
  • Impact (Aggregate impact report, certified data):
    • gov_tax and household_tax rise £4.63bn in 2025-26, £9.16bn in 2026-27 and £18.86bn in 2031-32.
    • In 2026-27, corporate SDLT goes from £3.13bn to £5.98bn and business rates from £31.73bn to £38.04bn.
    • Both move towards outturn: the corporate base alone is £4.49bn, and projected GB rates are £37.26bn against the OBR's £37.41bn.
    • Poverty and inequality are unchanged.
  • History: the branch carries 5f08c244c, the Count corporate SDLT once and let SDLT abolition remove all of it #2235 commit whose data note quoted one household's value. d1384 closed as no action under Max's standing d932 ruling.
  • Why now: a Budget baseline correction to receipts statistics that the coordinator asked to land before the final cut, and Max asked on 22 Oct to clear the UK PR backlog.

MaxGhenis added a commit that referenced this pull request Oct 24, 2026
#2322 (this branch's old base) merged at 03:40Z, so the PR now targets main.
This merge has no conflicts, and the net diff against main has the same
patch-id as the reviewed 9ca3cfd (b106e8a7).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

Corporate SDLT and business rates statistics are stale and held flat

1 participant