Repository navigation
UK consumption-tax levels: open items after #1167 #1207
Description
Follow-up to #1167, which closes #1113. This issue collects what that PR leaves open, so that nothing lives only in the PR body or the receipts. Three measure exclusions track it.
The items sit under the two deferral registers: the calibration-target items under #736 (WS-C) and the spine items under #796 (WS-E). An item moves to its own issue when it becomes actionable.
The figures are from the stage-only runs on #1121's head-r3 spine, recorded in experiments/1113-consumption-tax-levels-receipts.md. The scripts are in docs/evidence/uk-consumption-taxes-1113/.
Calibration-target items (under #736)
- Run the national remeasure (R1). Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 is measured at stage level only. R1 is one spine build and one national line on the policyengine-uk version Microcosm locks then. Acceptance, from the plan:
- the levelled energy and road-fuel totals move under 2% from design to final weights;
- the gas-connected share stays within 0.5 points of the DESNZ meter share;
- loss and the share of rows within 10% are no worse than UK: port the remaining uk-data fixes tracked in #1095, engine items included #1121's head calibration (0.00712, 98.3%).
- Reconcile ONS household energy spending with DESNZ volume at QEP prices. This is the retire condition of
ons.household_electricity_expenditureandons.household_gas_expenditure, both measure exclusions until 2027-01-08. Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 recorded the gap and did not explain it.- For calendar 2024, ONS 04.5.1 is £26.10bn against the stage's £29.52bn (0.88), and ONS 04.5.2 is £14.64bn against £19.23bn (0.76).
- Period is aligned in that comparison, and meters against households explain about 2%. VAT cannot close a gap in which gas sits below the unit cost of the measured volume.
- To do: find what ONS's household-sector spending leaves out or prices differently, and size it. Then bridge and rebind the rows, or restate the exclusions with the explanation.
- Size business use of cars against the OBR cars fuel-duty line. This is the retire condition of
obr.fuel_duties_cars, a measure exclusion until 2027-01-08.- With road fuel levelled to ONS 07.2.2, the engine's 2025 fuel duty reads −9.9% against the OBR cars line on its RAC price divisors and −8.1% on DESNZ's (Put road-fuel litre divisors on DESNZ pump prices policyengine-uk#2186).
- ONS 07.2.2 at DESNZ pump prices converts to about £13.5bn of duty, 7% below the OBR cars line, which includes car fuel paid by businesses.
- To do: size business-paid car fuel and its petrol-diesel split. Then model it and rebind the row, or restate the exclusion with the sizes.
- Decide a limit on how far the weights move the levelled totals. After Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 no bound row and no release-blocking check holds calibrated domestic energy, the VAT base or fuel duty. The report-only
consumption_driftblock is all that shows them. In the masked re-solve of the 2026-09-30 problem, unbound electricity drifted 1.4% and gas did not move. Decide after R1 whether a release-blocking limit on that drift is needed. - Record the bound road-fuel row at design weights.
ons.household_road_fuel_expenditurebinds ONS 07.2.2 for calendar 2025. ONS's own move from 2024 is −5.2%, and policyengine-uk 2.122.2 carries petrol and diesel −2.7%. With the 0.37% scope offset the row reads about +2.3% on that version, so the calibration moves weight away from fuel buyers. That is a desk figure. R1 records the measured one, and it changes with the engine's fuel uprating (Put road-fuel litre divisors on DESNZ pump prices policyengine-uk#2186). - Rebind
obr.vat. The exclusion retires when a locked policyengine-uk splitsmicrodata_vat_coverageand the row fits (Re-derivemicrodata_vat_coverage: the value has been 0.383 since 2010 and overshoots OBR VAT receipts on current datasets policyengine-uk#1996, Split VAT grossing into household share and survey coverage policyengine-uk#2187). Re-derive the coverage on R1, because consumption moves −0.3% against main's stage.
Spine items (under #796)
- Furnishings and health are over-drawn. The frame draws £94.4bn of furnishings (COICOP 05) against ONS's £76.0bn and the donor diary's £57.5bn, which is 61% more per household than the donor. Health (06) is 70% above the donor per household. The top 1% of households carry 14% of the furnishings and 18% of the health spend. This predates Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167, which only made it visible. It has the shape of the tail over-draw that Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 found for the transport remainder, but nothing has tested it.
- Extreme energy values are unbounded. A small number of households carry extreme electricity and gas values. Values of that size predate Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167: the head-r3 spine already holds them. The energy columns are exempt from the support clip and from the committed bounds, and since Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 the housing total contains them.
- The petrol-diesel mix is the diary's. The level step keeps the donor's mix (petrol 68% of spend). Against HMRC clearances times DESNZ's cars share of each fuel, petrol litres read 1.01 and diesel litres 0.71. Business-paid fuel may explain part of the diesel gap; see the item above.
- Who holds the zero-emission cars is random. The fuel flag is a draw at the car stock's non-zero-emission share, keyed on the household identity. It is random with respect to income, and a household with several vehicles is all one or the other. Since the redraw in Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167, this flag alone sets fuel incidence.
- Liquid and solid fuels have no column. ONS 04.5.3 and 04.5.4 are £1.5bn for 2024. The stage's energy derivation splits all of the diary's fuel, light and power into electricity and gas for 2,978 of the 4,202 diaries, so those households' other fuels leave with the drawn energy. For the rest, £5.2bn of other energy payments stays in the housing remainder.
- Northern Ireland's bus fares take England's index. The factor that re-prices its fiscal-year yield to calendar 2024 (0.982) is on England's fares index, which carries the January 2025 rise in the English fare cap. It is a declared proxy.
- Update the LCFS incidence item on WS-E spine deferrals: known bugs and signed inconsistencies awaiting their increment #796. That item records petrol on 0.300 of households against the donor's 0.391. Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 changes fuel incidence: every flagged fuel-car household now buys fuel, 74% of households on the head-r3 spine. The alcohol, tobacco and transport shares it also names are untouched.
- M1 has no saved script. The design- and final-weight energy volumes on the 2026-09-30 build (93.0 and 260.1 TWh; 82.9 and 205.2 TWh) were computed during the audit of 2026-10-08. The exclusion reasons quote them. Save a script that reproduces them, or replace them with the spend figures from the masked re-solve.
- Devolved bus use draws as England. The NTS donor is England-only, so Scotland and Northern Ireland households draw as the North East and Wales as the South West (
nts_bus_travel.py), which overstates Scottish and Northern Irish boardings and fares at design weights (candidate fixes inexperiments/930-nts-bus-journeys-receipts.md). Wales fares are unpriced and unbound; Wales and Northern Ireland support keep the raw ETB draw. - The engine reprices bus fares. policyengine-uk 2.123.0 (and 2.127.0) moves the dataset's
bus_fare_spendingtobus_fare_spending_reportedand recomputesperson_bus_fare_spendingfrom the exported trip columns with its own fare index, using the reported amount only for Wales. The bound DfT fare rows therefore calibrate the engine's pricing of the stage's trips, not the stage's priced column, and nothing checks the engine's fare parameters against the BUS05ai yields the stage prices at. Add that check as a stage or terminal receipt. - The prepayment flag is inert at the lock.
uses_energy_prepayment_meter(UK: lcfs_consumption on LCFS 2024-25, with the energy, income-band and prepayment fixes (#1164) #1260) is read by policyengine-uk from 2.123.3; main locks 2.123.0, so it takes effect at the UK: policyengine-uk 2.130.1 and the fourth batch of #1095 ports, with the release's weight year, identifiers and birth months fixed #1271 bump. It feeds no target, gate or pricing (pricing usespayment_method: all). - Stale text. The
energy_pricing.pymodule header still says "fiscal year" (the code and spec are calendar 2024);ofgem_region_crosswalk.jsonstill says cap levels price energy; the vendor purposes for the retired rakes and the Ofgemplanned_consumersentry inledger_fact_vendor_selections.jsondescribe the pre-Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 design;ofgem_price_cap_facts.jsonis vendored with no consumer beyond one QEP-versus-cap test.
Local-area energy and bus targets (constituency and local authority)
No local or regional row touches energy or bus use. The local surface (uk/local_target_references.json) carries six families: census households, council-tax stock, UC, HMRC, ONS housing and ONS population. The energy and bus draws condition on region at most (LCFS chain: composition, incomes, tenure, accommodation type, vehicles, region; NEED rake: income, tenure, property type, region, with Scotland on its all-dwellings mean and Northern Ireland untouched; NTS: age band, sex, vehicles, household size, income band, region). A seat's energy spend and bus use therefore come from region-level draws plus reweighting on non-energy families. Rurality, gas-grid connection and London bus use are not anchored.
The facts are already in the pinned feed (735820c) and bound nowhere:
desnz.subnational.*: domestic electricity and gas consumption and meter counts for every Great Britain local authority, calendar 2023 and 2024, with region and nation rows (packagesdesnz-subnational-electricity-consumption-2024anddesnz-subnational-gas-consumption-2024). The vendored Microcosm resource stops at region.- DfT BUS01 passenger journeys by English region and by the England-outside-London and urban-rural scopes, to 2025 (
dft-bus01-passenger-journeys-2025; vendored asdft_bus_journeys.json, where only London is a pricing area or target).
Decision (2026-10-14): these families bind now, in the local rebuild ahead of the 28 October Budget. No diagnostics-first stage.
Work, in order:
- Energy family at local-authority grain. Register domestic electricity consumption, gas consumption and the gas-meter share of households from
desnz.subnational.*as a local family, with the region rows as region-grain controls under One consistent UK target surface: enforced cross-grain reconciliation, declared uprating holds, nation household controls and the 942a1fa re-pin (#1123 PR A) #1198's cross-grain declarations. Model side: the stage's levelled kWh (or spend at the QEP prices, declared either way) and the gas-connected flag against the meter share. - Bus journeys at region grain. Register BUS01 journeys by English region (and the metropolitan and urban-rural scopes if the lattice can carry them) against
local_bus_trips, measured through the engine as every other bus row is. - Bind in the next local candidate. Both families bind in the dense solve of the pre-Budget local rebuild, under the UK local release: nation-grain doctrine at K=15 and 2,000 epochs, a 100,000-household release path, line-scoped gate exclusions, and the QRF tail surface #1242 doctrine with a declared loss-weight floor for the two families. The build's receipts report the share of authorities within 10% by family and the ESS cost against the previous candidate; every bound row past 25% gets a fix or a signed entry before the cut.
- Constituency grain. DESNZ publishes no constituency cut and BUS01 nothing below region, so constituency rows can only come from the local-authority rows through the atomic supports (a derived-facts route in the Place high-value homes where the Land Registry sees them (#1240) #1270 pattern) or stay at local-authority grain. Decide before binding.
- Condition the draws on the area (after UK graph: move geography assignment ahead of enrichment (geography-first reordering) #931 item (b)). Once rent and property move after geography, condition the gas-connected flag on the assigned area's DESNZ meter share and the NTS bus draw on the area's rural-urban class, so local variation comes from the draw and not only from reweighting.
Acceptance: the next local candidate binds per-authority energy rows and per-region bus rows; no bound row sits past 25% without a signed entry; the family's within-10 share and ESS cost are in the receipts; the national energy and bus rows are no worse than the R1 remeasure.
Related
- UK: move the LCFS stage to the Living Costs and Food Survey 2024-25 #1164: moving the LCFS stage to the 2024-25 survey. It changes the diary year that Set UK road-fuel and energy levels in the LCFS stage on a calendar-2024 basis (#1113) #1167 bridges to the calendar base year.
- Deferred in the plan, with no issue yet: VAT levelling by division, and quantities for the alcohol, tobacco and vehicle duties.
🤖 Generated with Claude Code
- UK SPI stage 1 keeps 4–17% of the tape's donors, and the QRF tail gate counts rows rather than draws #1276 (SPI stage-1 donor pool and the QRF tail gate) and UK spine: SLC plan-2 borrower stocks at a third of SLC's — the FRS flag captures repayers, not the liable stock #868 (SLC stocks) are the two issues triaged with this one next; the local energy and bus family above is their companion piece.
Activity
Address the adversarial review on the consumption-tax levels (#1113)
Record the review round 2 receipts (#1113)
Read LCFS fuel payments by their labelled codes: energy split, prepay…
Cap household energy at the domestic meter limits after the DESNZ lev…
Read LCFS fuel payments by their labelled codes: energy split, prepay…
Cap household energy at the domestic meter limits after the DESNZ lev…
juaristi22 commentedon Oct 14, 2026
Body updated 2026-10-14: four spine items added (devolved bus proxy regions and unpriced Wales fares; the engine's repricing of bus fares at the lock; the inert prepayment flag until the #1271 bump; stale pricing text), and a new section Local-area energy and bus targets that makes this issue own the binding of DESNZ sub-national energy and DfT BUS01 facts, already in the pinned feed, at local-authority and region grain.
juaristi22 commentedon Oct 14, 2026
Decision 2026-10-14: the local-authority energy family and the region-grain bus family bind in the dense solve of the next local rebuild, ahead of the 28 October Budget. The body's "measure, then bind" step is replaced by "bind in the next local candidate", with the fit and ESS receipts reported from that build and a fix or signed entry for any bound row past 25% before the cut.
Bring the energy stage's text up to calendar 2024 and its connect and…
Re-price Northern Ireland's bus fares to 2024 from its own yields (#1207
Record each LCFS division against its donor, and the donor's other fu…
Record the engine's bus pricing beside the stage's, and the VAT base'…
Accept DESNZ's publication vintage for Great Britain authorities (#1207)
Put DESNZ authority energy on the stage's level, and read kWh back fr…
WIP C7: DESNZ local-authority energy rows, metrics, census, routes (#…
41 remaining items
Refuse target weights that dilute a floored family below its loss sha…
Price only the households that pay for a fuel, and decode the region …
Read the engine's bus parameters at the year, as the resolver's other…
Move the pins, the data-target parity register and the changelog with…
Pin that the local energy metrics read the stored spend at the datase…
Let a family's loss share equal to its floor meet it, rounding allowed (
Sign the BUS01a journeys hold, the four DESNZ fences and the floors (#…
Sign the DESNZ kWh and gas-connected holds (#1207)
Hold the BUS01a rows at the stage's pricing year, and receipt each re…
Say which meters DESNZ's electricity year reads (#1207)
Pin the case the zero-spend guard covers (#1207)
Let a vendored resource carry its publishers' licence (#1207)
Vendor the local energy facts and regenerate the surfaces on 735820c (#…
Merge pull request #1286 from PolicyEngine/uk-local-energy-bus-1207