Repository navigation
Uprate Scottish households' water charges by Scottish Water's path - #2527
vahid-ahmadi wants to merge 2 commits into
Conversation
Scottish households took the Ofwat England and Wales water bill series. Uprate water_and_sewerage_charges by country, as for council tax: England and Wales by ofwat.water_bills, Scotland by a new scottish_water.water_bills series, Northern Ireland held flat. Fixes #2501 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Aggregate impact on certified data: passBase Checks: 0 broken by this change, 1 failing on both sides, 0 fixed. Moves flagged for review: 91 (thresholds in Notes
Moves flagged for review
51 more flags are in the report artifact. Spending by benefit and service
Caseloads
Poverty rates
People in poverty
Household net income by decileNo household's net income changes in any year. No change in any year: receipts by tax head; government balance, each component counted once; model totals; components the model counts twice; household income totals; population; inequality; 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. Checks failing on both base and head (1)
Counted-once checkEach of 84 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
Components the model counts twice: 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
|
…assumptions, test against Table 7's excess - Dataset projection no longer copies a stored unused_pension_annual_allowance into later years (YEAR_SPECIFIC_INPUTS): its three-year window moves each year, so projected years use the estimate. - The HMRC check also compares the chargeable amount with Table 7's £672m of excess, and names the gap as known data gaps, chiefly policyengine-uk-data#606: with employer contributions at a third of their stored values, count, charge and excess all fall within the band. - Parameters and docs say the defined-benefit ratio of 1 is a chosen midpoint (ten years' service; valid from 2023-24, when public service schemes revalue on 6 April; private schemes would push it below 1), that the carry-forward ratio of 1 is a convention which probably understates carry forward, and what a supplied share alone changes (only net pay to a defined-benefit scheme from age 75). The carry-forward ratio's label now matches its five-year use. - relevant_uk_earnings cites ITEPA 2003 ss. 9(2) and 11 for allowable expenses and says why pension deductions stay in; it and the carry-forward estimate note the limits left (furnished holiday lettings before 2025-26, the five-year window, 2015-16 alignment). - A carry-forward case where the taper binds only in an earlier year. - The UC benefit cap threshold notes that the national living wage parameter ends at April 2026, so the threshold holds at £10,572 after it. - Scottish water 2027-29 cite the Draft Determination's core cap (para. 9.1.3) and CPI forecast (Table 68); the HBAI validation row for water is updated, as in #2527. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…assumptions, test against Table 7's excess - Dataset projection no longer copies a stored unused_pension_annual_allowance into later years (YEAR_SPECIFIC_INPUTS): its three-year window moves each year, so projected years use the estimate. - The HMRC check also compares the chargeable amount with Table 7's £672m of excess, and names the gap as known data gaps, chiefly policyengine-uk-data#606: with employer contributions at a third of their stored values, count, charge and excess all fall within the band. - Parameters and docs say the defined-benefit ratio of 1 is a chosen midpoint (ten years' service; valid from 2023-24, when public service schemes revalue on 6 April; private schemes would push it below 1), that the carry-forward ratio of 1 is a convention which probably understates carry forward, and what a supplied share alone changes (only net pay to a defined-benefit scheme from age 75). The carry-forward ratio's label now matches its five-year use. - relevant_uk_earnings cites ITEPA 2003 ss. 9(2) and 11 for allowable expenses and says why pension deductions stay in; it and the carry-forward estimate note the limits left (furnished holiday lettings before 2025-26, the five-year window, 2015-16 alignment). - A carry-forward case where the taper binds only in an earlier year. - The UC benefit cap threshold notes that the national living wage parameter ends at April 2026, so the threshold holds at £10,572 after it. - Scottish water 2027-29 cite the Draft Determination's core cap (para. 9.1.3) and CPI forecast (Table 68); the HBAI validation row for water is updated, as in #2527. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Closing as superseded by #2536, which merged with the same Scottish Water figures and the per-country uprating. 🤖 Generated with Claude Code |
Summary
Fixes #2501
water_and_sewerage_chargesis now projected by country, the way council tax is:ofwat.water_bills(Ofwat regulates both).gov.economic_assumptions.yoy_growth.scottish_water.water_bills, with Scottish Water's published rises.The new
uprate_water_chargesinpolicyengine_uk/data/economic_assumptions.pyruns every projected year. The variable'supratingattribute is removed, so after the projection horizon (2032) it is held flat like council tax and rent, rather than Core growing Scotland by the Ofwat index.reset_growthfactor_upratingand the uprating fingerprint cover it.Removing the attribute also changes household (non-dataset) simulations: a water charge entered for one year and calculated for another is now held flat, where Core used to scale it by the Ofwat index. Council tax and rent already behave this way. The alternative is to keep the attribute and exclude water from the dataset fallback, but then household simulations and years after 2032 still grow Scottish charges by the England and Wales index. Decision for a maintainer.
Evidence
Scottish Water household charge rises (charging year from April, stored at 1 January, as for
ofwat.water_bills):Open question: Scotland from 2027-28
There is no final figure yet. The WICS draft determination for 2027-33 (consultation 30 June to 1 September 2026) caps rises at CPI + 2%, or up to CPI + 2.3% in the final three years if certain costs materialise. Its table of average bills before inflation runs £537 (2026-27), £548, £559 ... £605 (2032-33), about 2% real a year. The final determination is due on 29 October 2026.
Default used here: CPI + 2%, with CPI the OBR March 2026 forecast already in
consumer_price_index(2.0% for 2027 to 2030), so 0.020 + 0.02 = 0.04 from 2027-01-01, held after. Caveats: draft not final; OBR CPI is a calendar-year rate against an April charging year; it is written as a value, so it will not move with a new CPI forecast. Alternatives: hold 8.67%, or wait for 29 October. Decision for a maintainer, and the value should be revisited once the final determination is out.Overlap with #1863
This is based on main, where
water_and_sewerage_chargesis not inuprating_indices.yaml: it is held flat to 2030, then grows by the Ofwat index for every household, Scotland and Northern Ireland included. So on main this PR also starts uprating England and Wales water from 2025, which #1863 does too.It conflicts with #1863. Whichever merges second needs:
water_and_sewerage_chargesdropped from Uprate three more columns, and guard the gap that hid them #1863'suprating_indices.yamlentry (it would be overwritten byuprate_water_chargesanyway, but should not be listed twice);uprating, so if water stays in the YAML,test_the_yaml_uprates_by_the_declared_indexfails. Dropping it from the YAML (the bullet above) fixes that, and no exception is needed;test_projection_horizon.py: both PRs edit the fallback set;docs/book/assumptions/water-bills.md: both edit the end of the file.England and Wales values are not changed here: main still has 26% and 5.5%; #1863 updates them to 27% and 5.4%.
Out of scope:
policyengine_uk/utils/create_ahc_deflator.pyreads the Ofwat index offline and was not rerun (also left by #1863). If it is meant to be UK-wide it should weight in the Scottish path.Size
From the issue (back of envelope on
microcosm_uk_2024_25, not a model run): Scottish households' mean charge in 2026-27 is about £473 on the Scottish path against about £531 on the England and Wales one, about £57 a household and £150m in total.Tests
policyengine_uk/tests/test_water_charges_uprating.py, one household per known region with £400 in 2024:ofwat.water_bills, read from the parameter tree.Microsimulationgives 477.71332 for Scotland in 2026.uprating_input_paths();reset_growthfactor_upratingrestores the base value.On main the dataset tests fail: Scotland, England and Wales stay at 400 through 2030, and Northern Ireland grows to 418.00 after 2030 by the Ofwat index. The unit tests fail on import (
uprate_water_chargesdoes not exist).Checks: the new file 11 passed. Every test file that touches uprating, the projection or
water_and_sewerage_charges, plustests/code_health: 5,074 passed, 61 skipped. The household YAML tests: 161 passed. The full Python suite was not run locally.ruff checkon changed Python andruff format --check .are clean.Reproducer:
policyengine_uk/tests/test_water_charges_uprating.py::test_scottish_charges_follow_scottish_water_published_rises,policyengine_uk/tests/test_water_charges_uprating.py::test_scottish_charges_assume_cpi_plus_two_per_cent_from_2027,policyengine_uk/tests/test_water_charges_uprating.py::test_northern_ireland_charges_are_held_flat,policyengine_uk/tests/test_water_charges_uprating.py::test_microsimulation_uses_the_scottish_pathaxiom: n/a: uprating of a survey input column by published water charge rises; no tax or benefit rule changes
🤖 Generated with Claude Code