Repository navigation
What price basis do energy outputs carry after the Q2 2026 anchor? #485
Description
Raised from the review of PolicyEngine/policyengine-uk#1868, which removed the three energy variables from CPI dataset projection because the build already prices them. That change is correct for the 2024→2026 window and is verified. It leaves one question the review flagged as an evidence gap, and only this repository can answer it.
The question
imputations/consumption.py calibrates electricity_consumption and gas_consumption to NEED mean kWh and converts to pounds at Ofgem Q2 2026 unit rates, and states:
the stored £/yr values represent FY26/27 price levels. Energy variables are not CPI-uprated, so this avoids the need for price-level adjustment at simulation time.
That settles the anchor. It does not say what the values mean after it.
With #1868 merged, a 2027, 2028 or 2030 simulation returns the same nominal pounds as 2026. Two readings are possible and they differ materially:
- Constant FY26/27-price measures — the values are deliberately real terms at the anchor, and any nominal projection is the caller's job.
- Nominal values that should follow an energy-price series after the anchor — in which case they are currently understated in projected years, and the right index is an energy-price path rather than headline CPI (which is what produced the double count in the first place).
The Ofgem source ends 30 June 2026, so nothing in the build establishes which.
Why it matters beyond bookkeeping
- Downstream price-cap and subsidy calculations combine these values with cap parameters that do move by year. If the energy series is real and the cap is nominal, a ratio between them drifts with no one intending it.
housing_water_and_electricity_consumptionis mapped independently from LCFS p604 and is CPI-uprated, so a dataset can hold an energy series on one basis beside a related housing series on another.- A study defining scenarios against a stated pre-conflict price level (our case) is unaffected, because it measures from the anchor. A study wanting 2030 energy bills in 2030 pounds is very much affected.
What would settle it
A one-line statement in the module docstring or the dataset documentation saying which of the two readings is intended, and if the first, that callers needing nominal projected-year values must apply their own energy-price path.
If the second is intended, it needs an approved post-anchor series — and the fix belongs here, in the build, rather than in policyengine-uk's uprating list, since only the build knows the anchor.
No urgency, and no defect claimed: #1868 removes a demonstrable double count regardless of which answer is right. But leaving indefinite flat nominal values undocumented invites exactly the kind of misreading that produced PolicyEngine/policyengine-uk#1859 and #1860.
Activity