Skip to content

Four more variables declare uprating but are missing from uprating_indices.yaml #1862

Open

Description

@vahid-ahmadi

Follow-up to #1859 / #1860, raised in review of that PR. Same root cause, different variables — filed separately to keep the fix there focused.

Root cause, stated for the record

The class-level uprating = "..." attribute on a Variable is dead metadata in this repo: nothing reads it, and policyengine-core only inspects it to refuse combining it with its own @uprated decorator. data/uprating_indices.yaml is the only mechanism that actually applies uprating (apply_single_year_uprating / reset_growthfactor_uprating in data/economic_assumptions.py).

So a variable can declare an index and silently never be uprated. That is what #1859 observed for electricity_consumption and gas_consumption.

Four more affected

Measured on enhanced_frs_2024_25, household means, 2024 → 2027, all flat:

variable declares 2024 2027
water_and_sewerage_charges indices.ofwat.water_bills 375.51 375.51
housing_service_charges indices.obr.lagged_average_earnings 91.81 91.81
pension_contributions_via_salary_sacrifice indices.obr.average_earnings 418.69 418.69
rail_usage gov.dft.rail.ridership_index 515.59 515.59

Separately, savings_interest_income declares indices.ons.household_interest_income, but the YAML applies per_capita.gdp to it — a mismatch rather than an omission.

Two of the four point at indices that may have no yoy_growth parameter yet, so fixing them is likely more than a YAML addition.

Suggested durable fix

A code-health test (natural home policyengine_uk/tests/code_health/) asserting that every variable declaring uprating appears in uprating_indices.yaml under the matching index. That makes the gap visible instead of silent, and would have caught #1859 at the point it was introduced.

Credit to @juaristi22, who found these while reviewing #1860.

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