Repository navigation
Conversation
Budget 2026 (paragraph 6.211; policy costings page 13) extends the 5p cut from 1 January 2027 to 1 July 2027. On that date rates rise by 5p and are uprated by RPI, then by RPI each 1 April from 2028. Other road fuels keep a proportionate cut to the same date. - petrol_and_diesel.yaml: 52.95p to 30 June 2027; the January and March 2027 steps are gone. The generator now uprates the 57.95p pre-cut rate by 2026 RPI on 1 July 2027, then each 1 April from 2028. - lpg.yaml, natural_gas.yaml: full rates from 1 July 2027. - Tests and the excise duty engineering note follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Consolidated into #2719 so the Budget 2026 measures go through the merge queue once. This commit is cherry-picked there unchanged. |
Aggregate impact on certified data: passBase Checks: 0 broken by this change, 1 failing on both sides, 0 fixed. Moves flagged for review: 8 (thresholds in Notes
Moves flagged for review
Receipts by tax head
Spending by benefit and service
Caseloads
Government balance, each component counted once
Model totals
Household income totals
Mean household net income in each side's own deciles
Standard reform costings (change in gov_balance)
Standard reforms: change in each reform's target
Household net income by decileMean 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.
No change in any year: population; poverty rates; people in poverty; inequality. Checks failing on both base and head (1)
Counted-once checkEach of 91 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
Dataset: Receipts by tax head: head levels
Spending by benefit and service: head levels
Caseloads: head levels
Government balance, each component counted once: head levels
Model totals: head levels
Household income totals: head levels
Population: head levels
Poverty rates: head levels
People in poverty: head levels
Inequality: head levels
Mean household net income in each side's own deciles: head levels
Standard reform costings (change in gov_balance): head levels
Standard reforms: change in each reform's target: head levels
|
Draft: Budget week. Not for merge until the Budget-week merge rules lift.
Part of moving the Autumn Budget 2026 household measures from the dashboard repo's reforms (PolicyEngine/uk-autumn-budget-dashboard-2026#290) into current law here. This one is Table 6.1 item 3.
What and why
Budget 2026 keeps the 5p fuel duty cut for six more months, to 1 July 2027, and defers the RPI increase to the same date:
Changes:
gov.hmrc.fuel_duty.petrol_and_diesel: 52.95p to 30 June 2027. SI 2026/164's 55.95p step (1 January 2027) and the HODA 57.95p step (1 March 2027) are gone.calculate_fuel_duty_rates.py: the forecast now starts from the 57.95p pre-cut rate (FA 2011 s. 19). It applies 2026 RPI growth on 1 July 2027 (59.75p on the March 2026 EFO), then the previous calendar year's RPI each 1 April from 2028. The 2028-2031 rates are unchanged, because the July step lands on the same 59.75p the April 2027 step used to.lpg.yaml,natural_gas.yaml: the proportionate cut runs to 1 July 2027, when the full rates return (31.61p and 24.70p a kilogram). As before, the gas rates are not RPI-uprated;docs/engineering/excise-duties.mdrecords that limitation.(Model years are day-weighted across 6 April to 5 April by
fiscal_year_blend.)This is Budget policy, not yet law. No official source names the RPI measure for the July step. The model uses calendar-year 2026 growth from
gov.economic_assumptions.yoy_growth.obr.rpi, the same rule it used for the April 2027 step. The EFO update PR will regenerate the steps.Tests
test_fuel_duty_schedule.py:petrol_and_diesel_schedule.yamlandroad_fuel_gases.yaml: 2026-27 and 2027-28 duty on 1,000 litres or kilograms, worked by hand, plus a new fiscal 2027 gas case.test_fuel_duty_schedule.py,test_excise_schedules.py,test_fuel_duty_litres.py,test_road_fuel_volume_uprating.pyandtest_scenario_baseline_parameters.py: 102 passed;Invariants
These are the existing properties, now on the new schedule:
Impact
Not run yet. To follow on this PR.
Plan
Reproducer: policyengine_uk/tests/test_fuel_duty_schedule.py::test_scheduled_rate_on_each_date; policyengine_uk/tests/policy/baseline/gov/hmrc/fuel_duty/petrol_and_diesel_schedule.yaml
axiom: queued (rulespec-uk issue to follow; the rates are not yet legislated)
🤖 Generated with Claude Code