Skip to content

Model the temporary 0% VAT on GB domestic electricity - #2189

Open
vahid-ahmadi wants to merge 10 commits into
mainfrom
electricity-vat-zero-rate
Open

vahid-ahmadi wants to merge 10 commits into
mainfrom
electricity-vat-zero-rate

Conversation

@vahid-ahmadi

@vahid-ahmadi vahid-ahmadi commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #2166.

Stacked on #2187 (base branch rederive-vat-coverage, which splits the VAT grossing factor for #1996). Review and merge #2187 first; GitHub will then retarget this PR to main.

What was wrong

From 1 October 2026 to 31 March 2027, domestic electricity in England, Wales and Scotland is zero-rated for VAT (SI 2026/987; HMRC Brief 10/2026). Northern Ireland and gas stay at 5%.

The model couldn't represent this. Domestic fuel and power sat only inside a flat 2.5% share of total consumption (reduced_rate_share), taxed at one undated reduced rate and grossed up to receipts. electricity_consumption had no effect on vat, and there was no electricity-specific rate, nation split or date handling.

Fix

  • New domestic_energy_vat (household). It is VAT on the household's own electricity and gas bills:

    • electricity at a new gov.hmrc.vat.domestic_electricity_rate.{great_britain, northern_ireland};
    • gas at gov.hmrc.vat.reduced_rate.
  • vat = (full-rate VAT + VAT on the remaining reduced-rate base) / (survey coverage × household share of receipts) + domestic_energy_vat. baseline_vat does the same with baseline_domestic_energy_vat. The two factors come from Split VAT grossing into household share and survey coverage #2187.

  • The electricity rate:

    • GB: 5% from 1 September 1997, 0% from 1 October 2026, 5% from 1 April 2027. NI: 5% throughout.
    • Both carry fiscal_year_blend: true. Model year 2026 (6 April 2026 to 5 April 2027) has 183 days at 5% and 182 at 0%, so the GB rate for 2026 is 2.507%. Equal daily use is an assumption: HMRC bases liability on when electricity is consumed, and winter use is higher.
  • VAT-inclusive inputs. electricity_consumption and gas_consumption come from the data build (policyengine-uk has no default dataset), and both builds price them including 5% VAT:

    • Microcosm UK 2024-25 (f9d1922c, used for every figure below): kWh at DESNZ Quarterly Energy Prices average prices paid for FY2024-25 (all payment methods, standard metering), plus the QEP fixed cost, so standing charges are included. The calibrated frame is held to ONS 04.5.1/04.5.2 spending for 2025. Microcosm main has since moved to calendar-2024 prices (microcosm#1113), so the next release will differ.
    • Legacy Enhanced FRS (policyengine-uk-data): NEED 2023 kWh at Ofgem Q2 2026 price cap unit rates, with standing charges excluded.

    The VAT-exclusive base is the bill / 1.05 (5/105 of the bill is VAT) on either build, and it is held fixed when the rate changes.

  • No gross-up on energy. The energy inputs are calibrated to NEED consumption, not to receipts, and households bear VAT on their own bills in full. So neither the survey coverage nor the household share of receipts applies to energy VAT. Dividing it by the household share would put part of government and business VAT on electricity bills, and the zero rate would then cost 1/0.7 times the VAT households actually pay.

  • The generic reduced-rate base (reduced_rate_vat_consumption) is now consumption × max(reduced_rate_share − domestic_fuel_and_power_share, 0). The new gov.hmrc.vat.domestic_fuel_and_power_share holds ONS COICOP 04.5 / household final consumption by year from 2000.

  • Behaviour change for reforms: reduced_rate no longer reaches electricity. Its description now says so. A reform to electricity VAT should change domestic_electricity_rate.

  • The baseline tree: baseline_domestic_energy_vat day-weights the electricity rates itself (fiscal_year_average). The .baseline parameter tree keeps its dated values, so without this a simulation with no reform showed a nonzero vat_change in 2026 and 2027.

Reconciliation numbers

How much of the 2.5% is domestic fuel and power: all of it, to within rounding.

  • The OBR says "around 2.5 per cent of expenditure is taxed at this reduced rate", covering "domestic fuel and power, children's car seats and some other goods".
  • ONS 04.5 (electricity, gas and other fuels, ADFX) as a share of household final consumption (ABQI) was:
    • 2.79% in 2025 (£49.3bn / £1,766.6bn);
    • 2.83% in 2024;
    • between 2.49% and 3.63% in every year from 2006.
  • The non-energy remainder is therefore zero, apart from 0.01% of spending in 2017. Children's car seats, smoking-cessation products and similar can't be separated from published totals, which is a known small gap.

Aggregate check against HMRC.

  • Total domestic fuel and power:
    • HMRC's Tax relief statistics (January 2026), Table 2 (ODS), row "Domestic fuel and power" (VAT - NS4), puts the cost at £7,000m in 2025-26 (HMRC's first forecast year) and £6,800m in 2024-25. HMRC says the relief is "estimated entirely using other data", so the ONS check below may not be independent. The 15-point reading below assumes a standard-rate benchmark, which the table does not state.
    • Read as the 15-point gap to the standard rate, that is a VAT-exclusive base of about £46.7bn and £2.33bn of VAT at 5%.
    • ONS 04.5 for 2025 gives the same base: £49.3bn / 1.05 = £47.0bn.
  • Electricity:
    • ONS 04.5.1 (CDDL) is 58.5% of 04.5 in 2025, about £1.37bn of electricity VAT a year for the UK.
    • The model's GB electricity base (certified Microcosm UK 2024-25 release, f9d1922c) is £24.9bn excluding VAT, which is £1.24bn of VAT a year at 5%. That is about 93% of HMRC-implied GB electricity VAT (91% of the UK-wide £1.37bn).
    • These inputs include standing charges, so standing charges don't explain the gap. The release is calibrated to ONS Consumer Trends 04.5.1 of £26.522bn for 2025 (the 9 September 2026 vintage). The same series (CDDL) now reads £28,840m for 2025 in the release of 30 September 2026, so the release's figure is 8% below the current one. That vintage difference may explain most of the gap; this has not been confirmed.
  • Gas and electricity together: £2.02bn of VAT against HMRC's £2.33bn for all domestic fuel and power (87%). The remainder includes heating oil, solid fuel and other fuels, which are outside the new direct base, and any ONS vintage difference; it has not been decomposed.

Coverage re-derived without energy VAT. With energy split out, coverage = pre-scaling non-energy VAT / (0.7 × (receipts − energy-bill VAT)). On the certified Microcosm UK 2024-25 release (f9d1922c) for 2024-25: 79.2 / (0.7 × (171.0 − 2.0)) = 0.670. That rounds to the same 0.67 as #2187's derivation, so the value is unchanged; its derivation record and docs/engineering/vat-coverage.md now describe the energy-excluded calculation.

Total vat against OBR receipts (same release):

Year OBR main (0.38) #2187 this PR of which energy-bill VAT
2024-25 £171.0bn £211.8bn (+23.9%) £171.6bn (+0.4%) £170.9bn (−0.0%) £2.0bn
2025-26 £180.2bn £220.6bn (+22.4%) £178.7bn (−0.8%) £177.9bn (−1.3%) £2.0bn
2026-27 £187.7bn £226.5bn (+20.7%) £183.5bn (−2.2%) £182.1bn (−3.0%) £1.4bn
2027-28 £231.9bn £187.9bn £187.0bn £2.0bn
  • 2024-25, 2025-26, 2027-28: against Split VAT grossing into household share and survey coverage #2187, energy now counts at its own bills (£2.0bn) instead of its share of grossed-up reduced-rate VAT, so total VAT is £0.7–0.9bn lower.
  • 2026-27: the GB zero rate is worth £0.62bn (£24.9bn of GB electricity excluding VAT × 5% × 182/365).
    • Search-result summaries say the Treasury put the cost at £850m in 2026-27; I couldn't confirm that on GOV.UK, whose impact table is still blank.
    • Equal daily use understates the cost, and so would a base below current ONS spending (see Electricity above).
    • Energy inputs are held flat by dataset projection (uprating_indices.yaml), which assumes the uk-data FY2026-27 price basis. On Microcosm they stay at 2024-25/2025 prices in 2026-27, so the £0.62bn applies to that base. Projecting Microcosm's energy from its own price basis (microcosm#1113 item 4) is outside this PR and will be followed up separately.

Tests

  • tests/test_domestic_electricity_vat.py (26 cases):
    • the GB rate on 30 September 2026, 1 October 2026, 31 March 2027 and 1 April 2027, and NI on each date;
    • the FY 2026-27 day-weighted rate (0.05 × 183/365), with FY 2025-26 and FY 2027-28 at 5%;
    • England, Wales and Scotland against NI in FY 2026-27;
    • gas unchanged;
    • vat responding to electricity_consumption;
    • energy VAT not grossed up by coverage;
    • the generic reduced-rate base being empty at current values, and a reduced-rate share above the energy share keeping the remainder;
    • no vat_change without a reform;
    • a dated reform extending the zero rate through FY 2027-28 (vat_change −£50 on £1,050 of bills);
    • a zero rate for the first 183 of FY 2027-28's 366 days, day-weighted to £25 of VAT (vat_change −£25);
    • a reduced_rate reform reaching gas but not electricity.
  • tests/policy/baseline/gov/hmrc/vat/domestic_energy_vat.yaml: five household cases covering GB, NI, gas, FY 2027-28 and the coverage treatment.
  • Full YAML policy suite: 2,667 passed. pytest outside tests/policy and tests/microsimulation: 3,233 passed, 8 skipped, 2 xfailed, 0 failed (one float32 tolerance fixed after the first run). The microsimulation tests were not run locally. reforms_config.yaml expected values that include VAT may move with the baseline change.
  • ruff format and ruff check are clean, and the Towncrier draft renders under "Fixed".

Coordination

Found while testing, not fixed here: with Scenario(parameter_changes=...), the .baseline parameter tree is cloned after the reform is applied, so baseline_vat (and baseline_domestic_energy_vat) include the reform. Filed as #2188, since fixed on main by #2305.

Reproducer

test_vat_responds_to_electricity is the reproduction in #2166: on main, vat does not respond to electricity_consumption.

axiom: SI 2026/987 arts 1(2), 3 and 4 (VATA 1994 Sch 8 Group 24; Sch 7A Group 1 item 2) TheAxiomFoundation/rulespec-uk#467 queued (the Order and VATA 1994 s.30, Sch 7A and Sch 8 are not in the corpus; the signed encoder run needs its own approval)

Reproducer: policyengine_uk/tests/test_domestic_electricity_vat.py::test_vat_responds_to_electricity

🤖 Generated with Claude Code

@vahid-ahmadi vahid-ahmadi self-assigned this Oct 8, 2026
@juaristi22

juaristi22 commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Review of #2189 — Model the temporary 0% VAT on GB domestic electricity

Base repository: PolicyEngine/policyengine-uk
PR number: 2189
Reviewed head SHA: 69957d0
Merge base SHA: eac21df
Mode: incremental from 69957d0
Scope: changed behavior and affected dependencies
Source evidence: Official sources are linked below; local source copies and validation artifacts were retained.
Review status: PARTIAL

Source Documents

Critical

C1 — Keep the energy price VAT basis independent of gas-rate reforms (STILL OPEN)

CRITICAL — confirmed formula defect. Location: policyengine_uk/variables/gov/hmrc/domestic_energy_vat.py:50 at the reviewed head; the helper divides both fixed energy inputs by this value at lines 21–22, and the baseline calculation repeats it at lines 73–75. A supported scalar Scenario(parameter_changes={"gov.hmrc.vat.reduced_rate": 0.20}) makes the new formula treat bills priced with 5% VAT as though they include 20% VAT. For a London household in model year 2025 with unchanged £1,050 electricity and £1,050 gas inputs, the expected energy VAT under this hypothetical gas-rate reform is £250: £1,050 / 1.05 × 5% electricity plus £1,050 / 1.05 × 20% gas. Observed domestic_energy_vat is £218.749985 (£43.75 electricity plus £175 gas), understating actual VAT by £31.25. Total vat is correspondingly £4,483.14209 rather than £4,514.39209. The same inputs through Reform.from_dict give £250.000015. The fixed 5%-priced input premise is explicit in this PR and corroborated by Ofgem's Q2 2026 unit-price source, whose cached extract (pr-2189-source-ofgem-q2-2026.txt; retained locally) states that both unit prices include 5% VAT.

This diff newly makes actual electricity/gas VAT depend on the mutable .baseline gas rate used as a price denominator. A fresh interpreter also confirms that a scalar gas-rate reform to zero raises electricity VAT from £50 to £52.50 on an unchanged £1,050 electricity-only input. The passing PR test instead uses {"2025": 0}: that override starts on 6 April, while .baseline queried with "2025" reads 1 January and still returns 5%. A 2025-only override also changes actual 2026 energy VAT after expiry to £78.821915 instead of £75.068497. Preserve the input price's 5% VAT basis independently of the reformed statutory gas rate. Evidence: combined diagnostic and complete inputs (pr-2189-code-diagnostic.py; retained locally), observed results (pr-2189-code-diagnostic.log; retained locally), fresh isolated electricity-only reproduction (pr-2189-code-scalar-fresh.py; retained locally), and fresh output (pr-2189-code-scalar-fresh.log; retained locally).

The underlying Scenario baseline-cloning issue is already tracked as #2188 and may provide the common repair. Its separate cancellation of vat_change and household income effects is inherited; those zero effects are not counted as a new defect or used as this finding's impact claim. The demonstrated new impact is the incorrect actual energy VAT and total vat amount.

Should Address

A1 — Retain VAT on energy components excluded from the new direct base (STILL OPEN)

Severity: SHOULD ADDRESS (nonblocking coverage improvement). Captured location: policyengine_uk/variables/household/consumption/reduced_rate_vat_consumption.py:16 (also the new share parameter, lines 1 and 40–44).

Trigger and observed behavior: With the PR's documented default dataset contract, electricity_consumption and gas_consumption contain NEED kWh multiplied by Ofgem unit prices, excluding standing charges. The diff subtracts all ONS COICOP 04.5 spending—electricity, gas and other fuels—from the generic reduced-rate base, then replaces it with those two unit-priced inputs. At the 2025 share used for model year 2026, max(0.025 - 0.0279, 0) is zero. Thus the new direct base does not replace the standing charges or oil/solid-fuel components taken out of the previous generic proxy. This is conditional on the documented input contract: a caller supplying a complete VAT-inclusive bill can already include its standing charge in the new formula.

Expected treatment: HMRC treats a supplier's standing charge as part of the electricity or gas supply; qualifying domestic fuel oil, kerosene, coal and other solid fuel also remain taxable at the reduced rate. Electricity's zero rate extends to the qualifying electricity supply, while gas and the other fuels keep their existing treatment. Removing double counting should retain a representation of components absent from the direct inputs. VAT Notice 701/19, sections 2.2, 6, 7 and 10.10, VATA Schedule 7A, Group 1, HMRC Brief 10/2026.

Impact: For illustration, a continuously connected GB household at the documented Q2 2026 average electricity standing charge of 57.21p/day has £208.82 of gross standing charges over 365 days. At the fixed 5% input-price basis, those charges contain approximately £9.94 annual VAT. At that same price, the 182-day zero-rate portion of fiscal year 2026 removes approximately £4.96, which unit-only inputs omit. These are source-derived illustrations holding the Q2 price constant; they are not claims about the actual October tariff, the private dataset, or a population total. Ofgem Q2 2026 unit rates and standing charges, including 5% VAT.

Why introduced by this diff: Energy-input coverage was already limited, but generic reduced-rate consumption previously represented domestic fuel and power as part of a broad spending share. This change removes the whole category without a corresponding full-bill/other-fuel replacement. The PR discloses the limitation; it remains a coverage improvement rather than evidence that its aggregate factor is wrong. Retain or add the omitted components, or make the default inputs complete bills, while ensuring the two VAT bases do not overlap. The OBR describes its 2.5% reduced-rate share as approximate and also includes children's car seats and other goods; it does not establish a zero non-energy residual. OBR VAT explanation.

Suggestions

None.

Evidence Gaps

  • Private Microcosm f9d1922c population totals and revised energy-excluded coverage cannot be reproduced.
  • Exact OBR cash-basis detailed receipts table 3.8 was not acquired; headline EFO uses a different basis.
  • Original HMRC January 2026 domestic-fuel relief table and the aggregate missing-component reconciliation remain unverified.
  • Role checks incomplete: current-pr-2189-review-policy.md; see recovered report.

Notes

  • Private dataset calibration and missing standing charges/other fuels are assessed by the policy role; code diagnostics use the documented fixed 5%-priced input contract.
  • Known Scenario parameter changes leak into the baseline parameter tree, so baseline_vat shows no change #2188 Scenario baseline contamination and Re-average fuel duty and other blended rates after mid-year reforms #2185 mid-year reblending are inherited; the new finding concerns actual VAT being calculated on a changed priced base.
  • Captured GitHub statusCheckRollup is empty; local tests are separate evidence.
  • Evidence reused after confirming identical reviewed head and merge base. The fetched main branch has advanced; the review remains scoped to this unchanged head. Current CI was captured separately. Local tests were not rerun.
  • Statutory dates, GB/NI scope and gas exception verified.
  • All 26 ONS ADFX/ABQI parameter shares independently match original annual series.
  • Standing-charge/other-fuel coverage finding is conditional on documented unit-priced default inputs; complete-bill inputs can include standing charges.
  • Fixed 5% VAT-inclusive unit-price contract supports uk_code Scenario denominator defect; code reviewer owns that distinct finding.
  • Equal daily use, calendar-to-fiscal share carry-forward and receipts incidence are disclosed modeling assumptions.
  • Captured base branch: rederive-vat-coverage. Actual fetched base SHA: eac21df. Incremental scope contains no code changes.

Validation Summary

Reused exact-head validation (not rerun in this batch): tests: 60 passed, 1 warning in 24.39s; exit 0; exact snapshot import confirmed; test log: pr-2189-code-tests.log; diagnostics: ['pr-2189-code-diagnostic.py: exit 0, 15.57s; scalar/dated Scenario and Reform contrasts through VAT, household_tax, household_net_income', 'pr-2189-code-array-diagnostic.py: exit 0, 8.48s; nation vectors, 2025–2027 parity, both composition orders through final household_net_income', 'pr-2189-code-scalar-fresh.py: exit 0, 4.25s; isolated fresh process confirms fixed electricity VAT-base error']; diagnostic logs: ['pr-2189-code-diagnostic.log', 'pr-2189-code-array-diagnostic.log', 'pr-2189-code-scalar-fresh.log']

Reused exact-head validation (not rerun in this batch): Read SI 2026/987, HMRC Brief 10/2026, VAT Notice 701/19 and VATA Schedule 7A, Ofgem Q2 2026, ONS ADFX/ABQI/CDDL, official OBR proxy originals and 3 checksum-validated cached HMRC originals. Source validator exit 0: pr-2189-review-source-cache-check.json. Ratios: pr-2189-policy-share-comparison.json. Arithmetic: pr-2189-policy-arithmetic.json. Manifest: pr-2189-review-sources.json. Code reproduction delegated to uk_code and not duplicated.

CI at 69957d0: No checks reported at capture.

Detailed code, policy, source and reproduction artifacts were retained locally.

Timing

elapsed seconds: 1151.70s; setup seconds: 270.89s

Review Severity

REQUEST_CHANGES. Open findings: 1 critical, 1 should address, 0 suggestions.

vahid-ahmadi added a commit that referenced this pull request Oct 9, 2026
Addresses juaristi22's review of #2189.

C1: domestic_energy_vat divided the electricity and gas inputs by the
baseline-tree reduced rate. Scenario(parameter_changes=...) clones that
tree after applying the reform (#2188), so a 20% gas rate treated
5%-priced bills as if they included 20% (£218.75 instead of £250 on
£1,050 + £1,050). The divisor is now a fixed price-basis parameter,
gov.simulation.vat.energy_input_price_basis_rate = 0.05 (Ofgem Q2 2026
unit rates include 5% VAT), in both domestic_energy_vat and
baseline_domestic_energy_vat. Scenario and Reform.from_dict now agree.

Tests: her £250 case through both routes, a scalar zero gas rate leaving
electricity VAT at £50, and the FY2026 GB window/NI/gas cases with gas.

A1 (standing charges, other fuels) is not changed here: ONS electricity
plus gas alone is 2.71% of spending in 2025 (2.74% in 2024), above the
2.5% reduced-rate share, so a narrower subtraction is a no-op; complete
bills belong in the input data.

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

Copy link
Copy Markdown
Collaborator Author

Thanks, María. Both points are addressed in 6df47b1.

C1: energy price basis (fixed)

  • New parameter gov.simulation.vat.energy_input_price_basis_rate = 0.05. It records the VAT rate the electricity and gas inputs were priced at: Ofgem's Q2 2026 cap unit rates include 5% VAT. It sits with the other data-contract VAT parameters under gov.simulation.vat and uses the same metadata. Its description says it describes the input data, not policy, and cites Ofgem.
  • domestic_energy_vat and baseline_domestic_energy_vat now divide the inputs by 1 + that rate. Neither reads baseline.gov.hmrc.vat.reduced_rate as a divisor any more, so a reform to the reduced rate no longer reprices the inputs.
  • Why the two routes differed: Scenario(parameter_changes=...) rebuilds the .baseline tree after the change has been applied (Scenario parameter changes leak into the baseline parameter tree, so baseline_vat shows no change #2188), so the old divisor picked up the reformed 20%. Reform.from_dict leaves .baseline alone. With the divisor fixed, both routes now give the same domestic_energy_vat and vat.
    • Your London 2025 case now gives £250.00 through both routes: 1,050 / 1.05 × 5% + 1,050 / 1.05 × 20%.
    • Your scalar zero-rate case now gives £50 of electricity VAT, not £52.50.
    • Your 2025-only zero-rate override now leaves 2026 energy VAT at £75.07 (1,000 × 0.05 × 183/365 + 1,000 × 5%), not £78.82.
  • Still open, outside this PR: under Scenario, baseline_domestic_energy_vat, baseline_vat and vat_change still read the contaminated baseline gas rate. That is Scenario parameter changes leak into the baseline parameter tree, so baseline_vat shows no change #2188, and Let before-load Scenario spending changes construct, and add baseline regression tests #2193 fixes it. The new tests don't assert those values on the Scenario route.
  • The GB zero-rate window (1 October 2026 to 31 March 2027) is unchanged: GB electricity is still 0.05 × 183/365 for model year 2026, and NI stays at 5%.

A1: standing charges and other fuels (not changed here)

The narrower fix would subtract only electricity and gas from the generic reduced-rate share, so oil and solid fuel stay in it. I checked this against ONS:

Year Electricity (04.5.1, CDDL) Gas (04.5.2, ADVI) Household consumption (ABQI) Electricity and gas share of spending
2025 £28.84bn £18.96bn £1,766.6bn 2.71%
2024 £28.13bn £18.30bn £1,692.4bn 2.74%

Electricity and gas alone are above the OBR's 2.5% reduced-rate share, so the generic base would still be zero and the change would do nothing in current model years.

Standing charges can't go into the generic base either. Electricity standing charges must also be zero-rated during the window, and the generic base is taxed at the reduced rate and grossed up by coverage. The right home is the input data: complete-bill energy inputs, standing charges included, in policyengine-uk-data/Microcosm. domestic_energy_vat would then pick them up with the correct GB/NI and window treatment, with no change to the formula.

Raising reduced_rate_share instead would move the uk-data ETB imputation and the 0.67 coverage. The gap is about £9.94 a year per GB household on your figures, with about £4.96 lost in the 2026-27 window. It is disclosed in the PR body. I'm happy to file the data-side issue if you agree that's where it belongs.

Tests

  • New pytest cases in tests/test_domestic_electricity_vat.py, with the arithmetic in comments:
    • the price-basis rate is 5%;
    • your £250 case through Scenario and through Reform.from_dict, which give the same result;
    • the scalar zero gas rate leaving electricity VAT at £50;
    • the baseline 2026 window by nation with gas: GB £125.07, NI £150, and gas at £100 in every nation.
  • That file now has 25 cases, all passing.
  • Full YAML policy suite: 2,667 passed.
  • pytest outside tests/policy and tests/microsimulation: 3,240 passed, 8 skipped, 2 xfailed, 0 failed (microsimulation tests not run locally).
  • ruff format --check and ruff check are clean.

🤖 Generated with Claude Code

@vahid-ahmadi
vahid-ahmadi force-pushed the rederive-vat-coverage branch from eac21df to 691267f Compare October 12, 2026 09:10
@vahid-ahmadi
vahid-ahmadi force-pushed the electricity-vat-zero-rate branch from 8866719 to 43a7eec Compare October 12, 2026 09:10
vahid-ahmadi added a commit that referenced this pull request Oct 12, 2026
Addresses juaristi22's review of #2189.

C1: domestic_energy_vat divided the electricity and gas inputs by the
baseline-tree reduced rate. Scenario(parameter_changes=...) clones that
tree after applying the reform (#2188), so a 20% gas rate treated
5%-priced bills as if they included 20% (£218.75 instead of £250 on
£1,050 + £1,050). The divisor is now a fixed price-basis parameter,
gov.simulation.vat.energy_input_price_basis_rate = 0.05 (Ofgem Q2 2026
unit rates include 5% VAT), in both domestic_energy_vat and
baseline_domestic_energy_vat. Scenario and Reform.from_dict now agree.

Tests: her £250 case through both routes, a scalar zero gas rate leaving
electricity VAT at £50, and the FY2026 GB window/NI/gas cases with gas.

A1 (standing charges, other fuels) is not changed here: ONS electricity
plus gas alone is 2.71% of spending in 2025 (2.74% in 2024), above the
2.5% reduced-rate share, so a narrower subtraction is a no-op; complete
bills belong in the input data.

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

Copy link
Copy Markdown
Collaborator Author

Rebased onto the new #2187 head (691267f5c); the four existing commits carry over unchanged. One test needed updating in 43a7eeccf:

Tests: ruff clean; VAT pytest 30 passed; gov/hmrc/vat YAML 9 passed; full YAML policy suite 3,067 passed, 0 failed.

One thing for when this is retargeted to main: main's new Fix evidence check treats this as a fix PR (changelog.d/2166.fixed.md), so the description will need a Reproducer: line naming one of the new tests. The check only runs on PRs into main, so it doesn't apply yet.

🤖 Generated with Claude Code

vahid-ahmadi and others added 6 commits October 12, 2026 14:50
SI 2026/987 zero-rates domestic electricity in England, Wales and Scotland
from 1 October 2026 to 31 March 2027; Northern Ireland and gas stay at 5%.

- Add domestic_energy_vat: VAT on the household's own electricity and gas
  bills, VAT-exclusive base = bill / 1.05, not grossed up by
  microdata_vat_coverage. Electricity uses the new nation-split
  gov.hmrc.vat.domestic_electricity_rate (fiscal_year_blend: FY 2026-27 has
  183 days at 5% and 182 at 0%); gas uses the reduced rate.
- Take the ONS COICOP 04.5 share of household spending
  (gov.hmrc.vat.domestic_fuel_and_power_share) out of the generic
  reduced-rate share, so energy is not counted twice.
- baseline_domestic_energy_vat day-weights the dated baseline tree, so a
  simulation with no reform shows no vat_change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Energy-bill VAT sits outside both grossing factors from #2187, since the
bills are calibrated to NEED and households bear that VAT in full. Re-derived
the survey coverage against receipts net of energy VAT on the certified
Microcosm UK 2024-25 release: 79.2 / (0.7 x (171.0 - 2.0)) = 0.670, which
rounds to the existing 0.67. Records the derivation in the parameter and in
docs/engineering/vat-coverage.md, and loosens a float32 difference check to 1p.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Addresses juaristi22's review of #2189.

C1: domestic_energy_vat divided the electricity and gas inputs by the
baseline-tree reduced rate. Scenario(parameter_changes=...) clones that
tree after applying the reform (#2188), so a 20% gas rate treated
5%-priced bills as if they included 20% (£218.75 instead of £250 on
£1,050 + £1,050). The divisor is now a fixed price-basis parameter,
gov.simulation.vat.energy_input_price_basis_rate = 0.05 (Ofgem Q2 2026
unit rates include 5% VAT), in both domestic_energy_vat and
baseline_domestic_energy_vat. Scenario and Reform.from_dict now agree.

Tests: her £250 case through both routes, a scalar zero gas rate leaving
electricity VAT at £50, and the FY2026 GB window/NI/gas cases with gas.

A1 (standing charges, other fuels) is not changed here: ONS electricity
plus gas alone is 2.71% of spending in 2025 (2.74% in 2024), above the
2.5% reduced-rate share, so a narrower subtraction is a no-op; complete
bills belong in the input data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Microcosm prices electricity_consumption and gas_consumption at DESNZ QEP average domestic prices paid (tables 2.2.4 and 2.3.4, all payment methods, 2024-25, including VAT), not Ofgem cap unit rates. The 5% price-basis rate is unchanged.

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

Main (3edfb4b, fixing #2167 and #2188) applies dated reforms on the
statutory timeline. A calendar-2027 zero rate now leaves 1 January to
5 April 2028 at 5%, so the test dates the reform 6 April 2027 to 5 April
2028. The Scenario route also keeps the baseline tree now, so the price
basis test asserts the £100 baseline on both routes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add the Enhanced FRS rows (policyengine-uk-data 1.56.16 and 1.58.0) to the
energy-net coverage table, state that the bound from #2187 still holds, and
say which version the #2187 derivation table was computed on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vahid-ahmadi
vahid-ahmadi force-pushed the electricity-vat-zero-rate branch from 43a7eec to ebddf75 Compare October 12, 2026 12:53
@MaxGhenis MaxGhenis added the ci-recheck Re-triggers Fix evidence without changing the PR (UK hub, 2026-10-12) label Oct 12, 2026
juaristi22 added a commit to PolicyEngine/microcosm that referenced this pull request Oct 13, 2026
The NEED energy rake bands households by income. The donor bands on LCFS
gross income (p344p), NEED's concept, but the recipient read a
household_gross_income column no spine stage writes and fell back to its
HBAI net income, so recipients sat in too low a band and the rake gave
richer households the lower bands' mean kWh. That skews electricity and gas
by income, the distribution the GB domestic-electricity zero rate reads
(PolicyEngine/policyengine-uk#2189).

The stage now materializes the engine's household_gross_income with its four
income predictors, for the band alone, as nts_bus_travel does; the fallback
is gone. The end-to-end test reads the materialize step by kind, not by
position.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
juaristi22 added a commit to PolicyEngine/microcosm that referenced this pull request Oct 13, 2026
The NEED energy rake bands households by income. The donor bands on LCFS
gross income (p344p), NEED's concept, but the recipient read a
household_gross_income column no spine stage writes and fell back to its
HBAI net income, so recipients sat in too low a band and the rake gave
richer households the lower bands' mean kWh. That skews electricity and gas
by income, the distribution the GB domestic-electricity zero rate reads
(PolicyEngine/policyengine-uk#2189).

The stage now materializes the engine's household_gross_income with its four
income predictors, for the band alone, as nts_bus_travel does; the fallback
is gone. The end-to-end test reads the materialize step by kind, not by
position.

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

@juaristi22 juaristi22 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed ebddf75f5c77e16e4041258c49e2a76d74691993. C1 is resolved: the fixed 5% input-price basis is independent of gas-rate reforms. The scalar/datetime reform routes now agree through final VAT, household tax and net income; 67 distinct checks pass. The statutory GB/NI dates and all 26 ONS fuel-share ratios are corroborated.

One new must-fix completion item: the PR body has no required axiom: status. The snapshot’s docs/engineering/skills/github-prs.md:113–123 and .github/CONTRIBUTING.md:51 require that line for new policy/parameters. Please add the applicable parity status and evidence for these electricity-rate rules. The documented axiom: needed option is available where the contributor cannot complete the work. I am flagging the missing status, not asserting that an encoding is absent.

A1 remains a nonblocking coverage follow-up. QEP explicitly separates variable unit prices from fixed/standing costs, so a kWh × variable-price input omits standing charges; a complete bill input can already include them. Other fuels are also outside the new direct base. Please retain those limitations and avoid attributing the entire aggregate residual to standing charges without a measured decomposition.

The aggregate review remains partial: the body’s QEP 2024–25 contract conflicts with the inherited Ofgem Q2 2026 description, and the exact HMRC £7bn relief table was not independently acquired. Those limits do not reopen C1. This is still stacked on #2187 and no hosted checks are reported at this head; passing required CI remains a merge gate.

@vahid-ahmadi

Copy link
Copy Markdown
Collaborator Author

Thanks, María. On your re-review of ebddf75f5:

  1. axiom: line (must-fix): waits on Vahid. I checked rulespec-uk. It encodes the 5% reduced rate (uk/statutes/ukpga/1994/23/29A.yaml, uk/policies/govuk/vat.yaml), but I found nothing for the SI 2026/987 GB zero rate on domestic electricity, so encoded-correct would not be true. The honest options are queued (which needs a dispatch-ready pe-parity issue in rulespec-uk) or needed. Vahid will choose and add the line; I have not guessed one.
  2. A1 wording: changed in the PR body (no code change). The two reconciliation lines no longer put the whole residual down to standing charges. They now say the gap includes standing charges (and, for gas and electricity together, heating oil and solid fuel), which are outside the new direct base, and that it has not been decomposed. The limitation is still disclosed.
  3. QEP 2024-25 vs Ofgem Q2 2026 price basis: waits on Vahid. The new energy_input_price_basis_rate cites DESNZ Quarterly Energy Prices, while main's uprating_indices.yaml, docs/book/assumptions/growthfactors.md and test_energy_price_level.py say the inputs are priced at Ofgem Q2 2026 unit rates. Both include 5% VAT, so the 0.05 value holds either way, but which source describes the Microcosm inputs is a data-side question Vahid needs to settle before the citation is final.
  4. CI: the PR is still stacked on Split VAT grossing into household share and survey coverage #2187 (base rederive-vat-coverage), so no hosted checks run yet. They, including Fix evidence against the existing Reproducer: line, will run once Split VAT grossing into household share and survey coverage #2187 merges and GitHub retargets this PR to main.

🤖 Generated with Claude Code

Base automatically changed from rederive-vat-coverage to main October 18, 2026 17:56
@vahid-ahmadi

Copy link
Copy Markdown
Collaborator Author

@juaristi22, the axiom: line is now in the description:

axiom: SI 2026/987 arts 1(2), 3 and 4 (VATA 1994 Sch 8 Group 24; Sch 7A Group 1 item 2) TheAxiomFoundation/rulespec-uk#467 queued (the Order and VATA 1994 s.30, Sch 7A and Sch 8 are not in the corpus; the signed encoder run needs its own approval)

Issue: TheAxiomFoundation/rulespec-uk#467 (pe-parity). It quotes the Order's arts 1(2), 3 and 4, Sch 7A Group 1 item 1 and s.30(1)-(2) verbatim from legislation.gov.uk, and gives the module paths, outputs and companion cases (A to J). It also checks the FY 2026-27 differential against this PR's 25.07. rulespec-uk has no module for the zero rate, so encoded-correct would not hold. Fix evidence passes on the edited description.

🤖 Generated with Claude Code

@juaristi22 juaristi22 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed 952c8f978c5a711bae089e54c802b579a2caa562.

C2, the missing Axiom record, is resolved by the permitted queued record in rulespec-uk#467. The issue contains the required parity label, provisions/module paths, outputs, companion cases and corpus/encoder blocker. C1 remains resolved. All PR-owned code blobs match the previously reviewed version; 66 focused checks pass again after the main merge, and current-head hosted checks pass.

The aggregate review remains PARTIAL for the same two specific evidence gaps:

  • The actual default/private electricity and gas input price-year/build contract is unverified: the body describes QEP 2024–25 while inherited documentation describes Ofgem Q2 2026.
  • The exact HMRC January 2026 £7bn relief table has not been independently acquired. The derived aggregate base and VAT figures remain conditional on that premise.

A1 remains a nonblocking coverage follow-up for standing charges, other qualifying fuels and the generic reduced-rate remainder. The revised qualification of the unexplained aggregate residual is appropriate. No new policy-formula blocker was found.

Review status: PARTIAL. No confirmed open critical findings; this comment does not attest the aggregate evidence as complete.

The electricity and gas inputs are priced including 5% VAT by whichever
data build is loaded: Microcosm UK at DESNZ QEP average prices paid
including fixed costs, the legacy Enhanced FRS at Ofgem Q2 2026 cap unit
rates. Comments, docs and the derivation note only; no formula changes.

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

Copy link
Copy Markdown
Collaborator Author

@juaristi22 thanks. Here is the evidence on the two remaining gaps. The wording fixes are in ce9aacc (comments, docs and the parameter's derivation note only, no formula changes), and the PR body is updated.

1. Price year and build contract

Both descriptions are true, but of different data builds. policyengine-uk itself fixes neither: get_default_dataset_url() reads POLICYENGINE_UK_DEFAULT_DATASET and has no fallback, so the price basis belongs to whichever H5 is loaded.

  • Legacy Enhanced FRS (policyengine-uk-data). datasets/imputations/consumption.py rakes to NEED 2023 mean kWh and prices at Ofgem Q2 2026 cap unit rates (OFGEM_Q2_2026_ELEC_RATE = 24.67p, OFGEM_Q2_2026_GAS_RATE = 5.74p), with standing charges excluded (comment above those constants). The inherited text in uprating_indices.yaml, growthfactors.md, the economic assumptions README and test_energy_price_level.py describes this build. That is why energy is left out of dataset projection.
  • Microcosm UK 2024-25 (f9d1922c, the release the PR's numbers come from). I couldn't reach the release's own build commit (5c6b3f68), so I read Microcosm main on 2 October: at e39b14b6 and at 1e58ecb3a (the last commit that day), price_domestic_energy in uk/spec/sources.yaml is period_type: fiscal_year, period_value: 2024, payment_method: all, metering_arrangement: standard, vat_treatment: including_vat. kwh_to_spend returns kWh x unit cost + fixed cost, so these inputs include standing charges. The stage rakes kWh to NEED and the DESNZ level; the calibrated frame is then held to ONS Consumer Trends 04.5.1/04.5.2 for 2025 (electricity £26.522bn in the release-era facts, vintage 9 September 2026; the producer fit was £26.5199bn, per microcosm#1113). Since ea433d1c5 (9 October, microcosm#1113), main prices at calendar 2024, so the next release will differ.

What this means for the PR:

  • The 1.05 divisor is right on both builds. Both price including 5% VAT, so C1 and energy_input_price_basis_rate are unaffected.
  • The body's "QEP 2024-25" was correct for the dataset measured, but it presented this as the model's contract and said the inputs were unit-priced only. On Microcosm they include standing charges, so the standing-charge part of A1 applies to Enhanced FRS, not to the Microcosm figures. The body, the derivation note, the comments in domestic_energy_vat.py and the test, and vat-coverage.md now name both builds.
  • The inherited docs are stale for Microcosm, which policyengine-uk then holds flat at 2024-25/2025 prices. That is the projection point in microcosm#1113 item 4. It sits outside this PR and will be followed up separately. The body now says that the 2026-27 zero-rate cost (£0.62bn) uses that flat base.

2. HMRC £7bn

HMRC, Tax relief statistics (January 2026): https://www.gov.uk/government/statistics/tax-reliefs. The ODS is https://assets.publishing.service.gov.uk/media/69a0194e3e672177d0bc76e6/tax_relief_statistics_january_2026.ods (SHA-256 fa94a61fe6b6a02c19b87a656154f27eaf5f00f35f0cce9339b8101b9ac8ee4a).

  • Sheet Table_2 (six-year cost estimates, £ million), row 106 "Domestic fuel and power", code VAT - NS4, first forecast year 2025 to 2026. It gives 2025 to 2026 = 7,000 and 2024 to 2025 = 6,800. Section 3.8 of the HTML release covers the same relief.
  • The derived figures hold: 7,000 / 0.15 = £46.67bn base and x 0.05 = £2.33bn VAT. ONS ADFX 2025 (£49,322m) / 1.05 = £46.97bn.

Three caveats, now in the body:

  • 2025-26 is HMRC's first forecast year. The 2024-25 figure (£6.8bn) gives £45.3bn and £2.27bn.
  • The table says the relief is "estimated entirely using other data", so the ONS match may not be independent.
  • The 15-point reading assumes a standard-rate benchmark, which the table doesn't state.

On the electricity gap: the release's ONS electricity target (£26.522bn for 2025, 9 September vintage) is 8% below the same series as now published (CDDL, £28,840m for 2025, released 30 September). That vintage difference may explain most of the "about 93%" gap, rather than standing charges, but I haven't confirmed it.

Tests: test_domestic_electricity_vat.py 25 passed, domestic_energy_vat.yaml 5 passed; ruff check and format clean.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Aggregate impact on certified data: pass

Base 55cd7fb04b against head 68cbd95440, 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: 35 (thresholds in report_spec.yaml; a flag does not fail the job).

Workflow run and full report

Notes

  • 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
VAT 2026-27 £260.53bn £258.56bn -£1.97bn
VAT 2031-32 £293.71bn £291.99bn -£1.71bn
VAT 2030-31 £286.71bn £285.09bn -£1.62bn
VAT 2029-30 £279.83bn £278.30bn -£1.54bn
VAT 2028-29 £273.14bn £271.69bn -£1.45bn
VAT 2027-28 £266.72bn £265.35bn -£1.37bn
Government balance, each receipt once 2026-27 £393.08bn £391.11bn -£1.97bn
gov_balance 2026-27 £393.08bn £391.11bn -£1.97bn
VAT 2025-26 £253.71bn £252.51bn -£1.20bn
Government balance, each receipt once 2025-26 £368.44bn £367.24bn -£1.20bn
gov_balance 2025-26 £368.44bn £367.24bn -£1.20bn
Government balance, each receipt once 2027-28 £421.95bn £420.58bn -£1.37bn
gov_balance 2027-28 £421.95bn £420.58bn -£1.37bn
Government balance, each receipt once 2028-29 £447.75bn £446.30bn -£1.45bn
gov_balance 2028-29 £447.75bn £446.30bn -£1.45bn
Government balance, each receipt once 2029-30 £475.14bn £473.61bn -£1.54bn
gov_balance 2029-30 £475.14bn £473.61bn -£1.54bn
Government balance, each receipt once 2030-31 £502.55bn £500.93bn -£1.62bn
gov_balance 2030-31 £502.55bn £500.93bn -£1.62bn
Government balance, each receipt once 2031-32 £534.00bn £532.29bn -£1.71bn
gov_balance 2031-32 £534.00bn £532.29bn -£1.71bn
gov_tax 2026-27 £938.67bn £936.70bn -£1.97bn
Government receipts, each component once 2026-27 £938.67bn £936.70bn -£1.97bn
gov_tax 2031-32 £1,121.34bn £1,119.62bn -£1.71bn
Government receipts, each component once 2031-32 £1,121.34bn £1,119.62bn -£1.71bn
gov_tax 2030-31 £1,080.86bn £1,079.24bn -£1.62bn
Government receipts, each component once 2030-31 £1,080.86bn £1,079.24bn -£1.62bn
Government receipts, each component once 2029-30 £1,044.30bn £1,042.76bn -£1.54bn
gov_tax 2029-30 £1,044.30bn £1,042.76bn -£1.54bn
Government receipts, each component once 2028-29 £1,008.36bn £1,006.91bn -£1.45bn
gov_tax 2028-29 £1,008.36bn £1,006.91bn -£1.45bn
Government receipts, each component once 2027-28 £975.44bn £974.07bn -£1.37bn
gov_tax 2027-28 £975.44bn £974.07bn -£1.37bn
gov_tax 2025-26 £899.03bn £897.83bn -£1.20bn
Government receipts, each component once 2025-26 £899.03bn £897.83bn -£1.20bn

Receipts by tax head

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
VAT -£1.20bn -£1.97bn -£1.37bn -£1.45bn -£1.54bn -£1.62bn -£1.71bn

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 -£1.20bn -£1.97bn -£1.37bn -£1.45bn -£1.54bn -£1.62bn -£1.71bn
Government balance, each receipt once -£1.20bn † -£1.97bn † -£1.37bn † -£1.45bn † -£1.54bn † -£1.62bn † -£1.71bn †

Model totals

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
gov_tax -£1.20bn -£1.97bn -£1.37bn -£1.45bn -£1.54bn -£1.62bn -£1.71bn
gov_balance -£1.20bn † -£1.97bn † -£1.37bn † -£1.45bn † -£1.54bn † -£1.62bn † -£1.71bn †

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 -£1,019 +£1,841 -£731 -£3,119 -£1,462 -£414 +£69
Raise higher rate by 1pp +£802 +£3,302 -£3,391 -£2,476 +£2,987 -£1,292 +£5,044
Raise personal allowance by ~800GBP/year -£56 +£164 +£837 -£1,074 +£199 -£167 +£1,713
Raise child benefit by 25GBP/week per additional child -£29 +£193 +£761 +£21 -£9 +£121 -£138
Reduce Universal Credit taper rate to 20% -£210 -£36 +£351 +£296 -£7 +£112 -£164
Raise Class 1 main employee NICs rate to 10% -£1,368 +£477 -£1,204 -£1,462 -£1,061 -£781 +£3,389
Raise VAT standard rate by 2pp +£2,792 +£1,425 -£1,255 -£2,558 +£934 -£3,276 +£3,592
Raise additional rate by 3pp +£593 -£254 -£298 -£469 +£1,384 suppressed suppressed
Raise the Universal Credit standard allowance by 10% +£110 +£41 +£258 +£118 +£113 -£196 +£102
Raise the State Pension by 10% +£472 +£404 +£18 -£364 -£827 +£253 -£1,090

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 +£1,001 -£963 +£819 +£370 +£493 -£293 +£1,253
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 is never negative (sign:vat): 2025-26: 76 units below zero, a weighted £-54,574,247 in total; 2026-27: 76 units below zero, a weighted £-56,138,507 in total; 2027-28: 76 units below zero, a weighted £-57,392,684 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 55cd7fb04b uk 2.148.5 (files ceb0c292cc4a), core 3.33.2, py 3.13.17 aarch64 c2bcb36ae6e8 d4c1e9f08160 1523.87s
head #2189 merged into main 68cbd95440 uk 2.148.5 (files 4d813b5d1c8c), core 3.33.2, py 3.13.17 aarch64 c2bcb36ae6e8 d4c1e9f08160 1539.63s

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 £252.51bn £258.56bn £265.35bn £271.69bn £278.30bn £285.09bn £291.99bn
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.21bn £51.88bn £54.97bn £58.29bn £61.55bn £64.92bn £68.49bn
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.98bn £2.03bn £2.07bn £2.11bn £2.16bn £2.21bn £2.25bn
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,224k 3,245k 3,262k 3,280k 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 £897.83bn £936.70bn £974.07bn £1,006.91bn £1,042.76bn £1,079.24bn £1,119.62bn
Government spending £530.58bn † £545.59bn † £553.49bn † £560.60bn † £569.15bn † £578.31bn † £587.34bn †
Government balance, each receipt once £367.24bn † £391.11bn † £420.58bn † £446.30bn † £473.61bn † £500.93bn † £532.29bn †
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 £897.83bn £936.70bn £974.07bn £1,006.91bn £1,042.76bn £1,079.24bn £1,119.62bn
household_tax £492.68bn £518.96bn £544.57bn £566.48bn £588.35bn £612.42bn £638.73bn
pre_budget_change_household_tax £484.85bn £510.84bn £536.22bn £557.44bn £579.07bn £602.88bn £628.84bn
gov_spending £530.58bn † £545.59bn † £553.49bn † £560.60bn † £569.15bn † £578.31bn † £587.34bn †
household_benefits £530.58bn † £545.59bn † £553.49bn † £560.60bn † £569.15bn † £578.31bn † £587.34bn †
gov_balance £367.24bn † £391.11bn † £420.58bn † £446.30bn † £473.61bn † £500.93bn † £532.29bn †
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.70bn † £1,705.12bn † £1,738.71bn † £1,773.17bn † £1,809.60bn † £1,851.54bn † £1,903.54bn †
Household net income (HBAI definition) £1,462.17bn £1,509.90bn £1,543.94bn £1,577.28bn £1,611.67bn £1,651.05bn £1,701.84bn
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.1% 15.2% 15.5% 15.7% 15.7% 15.8% 15.8%
Absolute poverty, before housing costs: children 24.2% 21.4% 21.6% 21.6% 21.7% 22.0% 21.8%
Absolute poverty, before housing costs: working-age adults 13.9% 13.5% 14.0% 14.2% 14.2% 14.3% 14.3%
Absolute poverty, before housing costs: pensioners 13.7% 13.2% 13.2% 13.4% 13.5% 13.5% 13.5%
Absolute poverty, after housing costs: everyone 21.6% 20.9% 21.4% 21.6% 21.9% 22.1% 22.3%
Absolute poverty, after housing costs: children 33.4% 30.9% 31.1% 31.3% 31.5% 32.0% 32.3%
Absolute poverty, after housing costs: working-age adults 19.9% 19.7% 20.3% 20.5% 20.8% 21.0% 21.1%
Absolute poverty, after housing costs: pensioners 12.8% 12.6% 12.6% 12.9% 13.1% 13.4% 13.4%
Relative poverty, before housing costs: everyone 17.2% 16.5% 16.5% 16.6% 16.4% 16.4% 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 14.8% 14.8% 14.1% 14.2% 14.0% 14.0% 14.1%
Relative poverty, after housing costs: everyone 21.7% 21.1% 21.3% 21.3% 21.4% 21.4% 21.7%
Relative poverty, after housing costs: children 33.5% 31.3% 31.0% 30.8% 31.0% 31.0% 31.5%
Relative poverty, after housing costs: working-age adults 19.9% 19.8% 20.2% 20.3% 20.5% 20.5% 20.7%
Relative poverty, after housing costs: pensioners 13.0% 12.7% 12.6% 12.2% 12.1% 12.2% 12.5%
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,163k 10,583k 10,866k 11,011k 11,088k 11,228k 11,233k
Absolute poverty, before housing costs: children 3,629k 3,221k 3,263k 3,284k 3,310k 3,369k 3,350k
Absolute poverty, before housing costs: working-age adults 5,902k 5,806k 6,087k 6,198k 6,235k 6,305k 6,321k
Absolute poverty, before housing costs: pensioners 1,632k 1,556k 1,515k 1,529k 1,543k 1,555k 1,562k
Absolute poverty, after housing costs: everyone 15,000k 14,571k 14,968k 15,173k 15,433k 15,708k 15,854k
Absolute poverty, after housing costs: children 5,004k 4,656k 4,703k 4,745k 4,808k 4,897k 4,966k
Absolute poverty, after housing costs: working-age adults 8,476k 8,431k 8,814k 8,960k 9,130k 9,273k 9,341k
Absolute poverty, after housing costs: pensioners 1,520k 1,484k 1,451k 1,468k 1,496k 1,538k 1,547k
Relative poverty, before housing costs: everyone 11,974k 11,507k 11,542k 11,648k 11,548k 11,670k 11,705k
Relative poverty, before housing costs: children 3,963k 3,570k 3,543k 3,553k 3,489k 3,519k 3,518k
Relative poverty, before housing costs: working-age adults 6,246k 6,184k 6,378k 6,475k 6,459k 6,538k 6,554k
Relative poverty, before housing costs: pensioners 1,765k 1,753k 1,621k 1,620k 1,600k 1,613k 1,633k
Relative poverty, after housing costs: everyone 15,067k 14,732k 14,895k 14,945k 15,110k 15,214k 15,475k
Relative poverty, after housing costs: children 5,019k 4,715k 4,686k 4,669k 4,725k 4,753k 4,839k
Relative poverty, after housing costs: working-age adults 8,497k 8,516k 8,764k 8,884k 8,994k 9,060k 9,195k
Relative poverty, after housing costs: pensioners 1,551k 1,502k 1,445k 1,392k 1,391k 1,401k 1,441k
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.3061 0.3068 0.3074 0.3078 0.3084 0.3095
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,841 † £18,023 † £18,040 † £18,084 † £18,438 † £18,627 † £18,803 †
Decile 2: mean household_net_income per household £28,086 † £29,021 † £28,787 † £29,226 † £29,487 † £29,939 † £30,568 †
Decile 3: mean household_net_income per household £34,361 † £35,678 † £36,193 † £36,764 † £37,055 † £37,700 † £38,313 †
Decile 4: mean household_net_income per household £38,776 † £40,951 † £42,048 † £42,647 † £43,424 † £44,189 † £44,704 †
Decile 5: mean household_net_income per household £43,948 † £44,841 † £45,903 † £46,641 † £47,851 † £48,655 † £49,864 †
Decile 6: mean household_net_income per household £48,438 † £49,772 † £50,873 † £51,669 † £51,947 † £53,410 † £54,725 †
Decile 7: mean household_net_income per household £56,400 † £57,626 † £58,395 † £59,133 † £60,160 † £60,960 † £62,360 †
Decile 8: mean household_net_income per household £69,281 † £70,763 † £72,241 † £73,343 † £74,868 † £76,016 † £78,283 †
Decile 9: mean household_net_income per household £79,811 † £82,188 † £83,310 † £84,759 † £86,323 † £87,891 † £90,929 †
Decile 10: mean household_net_income per household £117,852 † £120,687 † £122,639 † £124,783 † £127,005 † £129,364 † £132,261 †
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

@juaristi22 juaristi22 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed ce9aacccbda30bf05ffc050fb331767cdc643df6.

The two material public-source checks are now complete. I independently downloaded the HMRC January 2026 ODS: Table_2, row 106 gives £6.8bn for 2024–25 and £7.0bn for 2025–26, the first forecast year. The £46.67bn base/£2.33bn VAT derivation remains conditional on a 15-point standard-rate benchmark; those are not independently observed totals from the table.

The public build descriptions concern different contracts. The contemporaneous Microcosm specification includes variable and fixed costs, FY2024–25 QEP data and VAT; the legacy uk-data code uses Ofgem Q2 2026 unit rates and excludes standing charges. Both support the formula's fixed 5% input-price premise. The apparent public-contract conflict is resolved. The exact private build ref 5c6b3f68 could not be acquired, so private release provenance and aggregate figures remain conditional and are not certified here.

A1 remains nonblocking: standing-charge omission applies to the legacy contract; other-fuel and generic reduced-rate coverage approximations remain. The Microcosm public contract includes standing charges, so that omission must not be attributed to it generally.

Executable ASTs and parameter values are unchanged; the previous 66 passing checks are retained with hash provenance. Current required CI passes. C1/C2 remain resolved. Review status: COMPLETE for the changed-policy/public-source scope; no open critical findings.

@MaxGhenis

Copy link
Copy Markdown
Collaborator

UK hub (Claude session, for Max). @juaristi22, your 20 Oct re-review of ce9aacccb says C1 and C2 are resolved and there are no open critical findings. Your 15 Oct changes-requested review still blocks the merge, though. If you're satisfied, could you approve? Every check passes at this head, and the hub has an independent review running. On approval, the hub lands this through the merge queue, so the 2026-27 baseline carries the 0% rate before the Budget.

@MaxGhenis

Copy link
Copy Markdown
Collaborator

UK hub (Claude session, for Max): independent review (GPT-6.1 Sol) at ce9aacccb: APPROVE. It reviewed the tree merged with current main a45baf5e4, which merges cleanly.

  • Dates, rates and the GB/NI split match SI 2026/987 arts 1(2), 3 and 4. The 0.469 factor stays on non-energy VAT and energy VAT is added once. All 26 fuel shares match ONS. Every reader of the changed surfaces is coherent.
  • Tests: 63 Python cases (all 25 of the PR's own) and 15 YAML cases passed on the merged tree.
  • Nonblocking:
    • A1 as María described it. Other fuels and the reduced-rate remainder stay approximate, and equal daily use understates winter consumption.
    • docs/book/programs/gov/hmrc/firm-vat.md:4 still says household VAT is fully grossed up.
    • The body's note on mid-year reforms may be stale against current main.

@juaristi22, this is the only thing left before it lands: if you're satisfied, please approve, which clears your 15 Oct changes request. The hub then lands it through the merge queue.

vahid-ahmadi and others added 2 commits October 23, 2026 16:52
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With #2305 on main, a reform dated part-way through a model year is
day-weighted on the blended electricity rate; test it directly. The
firm-level VAT page said all household VAT is grossed up to receipts;
energy bill VAT is now added once without the gross-up.

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

Copy link
Copy Markdown
Collaborator Author

@juaristi22 every point you raised is answered at the new head, 0036920:

  • C1 (gas-rate reforms and the 5% input-price basis) and C2 (Axiom record, rulespec-uk#467): resolved, as your 19 and 20 Oct re-reviews say.
  • The two evidence gaps (the HMRC £7.0bn table and the input price basis per build): closed in your 20 Oct re-review.
  • A1 (standing charges, other fuels, the reduced-rate remainder): stays a disclosed, nonblocking follow-up.

Since then I merged main in (d56c398). No formula or parameter in this PR changed. 0036920 adds one test: with #2305 now on main, a zero rate for half of FY 2027-28 is day-weighted to £25 of VAT on £1,050 of bills. It also corrects docs/book/programs/gov/hmrc/firm-vat.md, which said all household VAT is grossed up, as @MaxGhenis noted. On the merged tree all 4,348 YAML policy tests pass, as do 396 VAT, fuel duty, dated-reform and fiscal-year pytest cases. The body's stale #2185 note now points to #2305.

Could you re-review at 0036920, or dismiss your 15 Oct changes-requested review if you're satisfied?

🤖 Generated with Claude Code

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

ci-recheck Re-triggers Fix evidence without changing the PR (UK hub, 2026-10-12)

Projects

None yet

3 participants