Repository navigation
Add the absolute poverty line on the FYE 2011 reference in every year - #2630
Conversation
HBAI moved the absolute low-income line to the FYE 2025 reference from FYE 2022 in March 2026, and the existing flags follow it. Add parameters and variables that keep the FYE 2011 line in every year, for comparison with estimates published before then, and say in the existing labels which line they use. Fixes #2612 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: 0 (thresholds in Notes
Moves flagged for reviewNone. Spending by benefit and service
Caseloads
Standard reform costings (change in gov_balance)
Standard reforms: change in each reform's target
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; household income totals; population; poverty rates; people in poverty; inequality; mean household net income in each side's own deciles. Checks failing on both base and head (1)
Counted-once checkEach of 86 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
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
|
juaristi22
left a comment
There was a problem hiding this comment.
Reviewed at ce98203bcba0fc07418684537a4ea9f36487218f. No actionable findings from independent code and source reviews.
All 30 weekly monetary values match primary workbooks. All 86 focused tests passed, covering historical/current reference distinctions, source arithmetic, deflator ratios, forward uprating and final household poverty classifications. Annualisation and equivalisation are consistent, and existing current-reference formulas are unchanged. Future headline CPI uprating remains an explicitly documented approximation to the bespoke HBAI deflators.
Summary
Since #1889 the absolute poverty flags use HBAI's FYE 2025 reference line from FYE 2022, as HBAI has since March 2026 (methodology, section 2.3). Most published absolute poverty estimates still use the FYE 2011 line, and the model had no variable for it. This PR adds one alongside the current line:
household.poverty.absolute_poverty_threshold_fye2011_bhcand_ahc: 60% of the FYE 2011 median held constant in real terms, in every year, uprated by OBR CPI after FYE 2025 as the current line is.poverty_threshold_fye2011_bhcand_ahc(annual line for a couple with no children) andin_absolute_poverty_fye2011_bhcand_ahc(household flags), mirroringpoverty_threshold_*andin_poverty_*.in_poverty_bhc,in_poverty_ahc,poverty_threshold_bhcandpoverty_threshold_ahcnow say they follow HBAI's current reference line, and their documentation points to the FYE 2011 twins. No existing variable or value changes.The new parameters hold FYE 2011 to FYE 2021 explicitly rather than reading the current parameter, because HBAI's March 2027 release is due to move FYE 2019 to FYE 2021 to the FYE 2025 reference (#2275); the FYE 2011 line must not move with it.
Fixes #2612
Evidence
FYE 2011 to FYE 2021 are the values already on main, sourced from DWP's FYE 2011 median in each year's prices (UK Data Service SN 5828).
FYE 2022 to FYE 2025 come from each HBAI edition's summary table 1.2b, which gives every year's medians in that edition's prices, so its 2010/11 row is the FYE 2011 median in prices of the edition's year. 60% of it, to the penny:
As a cross-check, each median is DWP's FYE 2011 median (418.91 BHC, 358.16 AHC) times HBAI's annual deflator over its FYE 2011 value (BHC 113.1, 124.9, 133.2, 137.1 over 90.5; AHC 113.9, 126.1, 133.2, 135.7 over 90.6; HBAI variables guide, Deflators sheet), to within 4e-8. That is the CPI uprating HBAI applies.
The issue's estimate of about £337.90 a week AHC in 2025-26 came from uprating the FYE 2021 value by the model's CPI index. HBAI's own deflators give a lower FYE 2025 value (321.87), so the 2025-26 AHC line on this PR is £332.81 a week (against £386.60 on the FYE 2025 reference).
Tests
policyengine_uk/tests/test_absolute_poverty_fye2011_line.py, 82 tests: identity with the current line for FYE 2011 to FYE 2021; the table 1.2b values to the penny for FYE 2022 to FYE 2025; the deflator cross-check; CPI uprating in step with the current line to 2030; the FYE 2011 line below the FYE 2025 line from FYE 2022; and the variable layer. On origin/main (4ed874f) 74 fail, because the parameters and variables do not exist; the 8 deflator cross-checks test source data only and pass.policyengine_uk/tests/policy/baseline/household/poverty/absolute_poverty_fye2011.yaml, 4 cases, including a household between the two lines in 2024 (in absolute poverty on the FYE 2025 line, not on the FYE 2011 line). All 4 fail on main.test_absolute_poverty_reference_year.py,test_absolute_poverty_fye2011_reference.py,test_process_time_reforms.py, 153 tests), the poverty YAML folder (21 cases), and the parameter metadata and description, variable unit, code sharing, module release, relative poverty, squared poverty gap, programme registry and deterministic variable tests (173 passed, 1 skipped).ruff checkandruff format --checkpass on the changed Python.Reproducer: policyengine_uk/tests/test_absolute_poverty_fye2011_line.py::test_fye2011_line_is_60_percent_of_published_fye2011_median
Reproducer: policyengine_uk/tests/policy/baseline/household/poverty/absolute_poverty_fye2011.yaml::In FYE 2025 (2024) income between the two lines is in absolute poverty on the FYE 2025 line but not on the FYE 2011 line
axiom: n/a: the HBAI absolute low-income line is a statistical measure, not a legislated provision (as for #1889 and #2276)
🤖 Generated with Claude Code