Skip to content

What price basis do energy outputs carry after the Q2 2026 anchor? #485

Open

Description

@vahid-ahmadi

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:

  1. Constant FY26/27-price measures — the values are deliberately real terms at the anchor, and any nominal projection is the caller's job.
  2. 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_consumption is 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions