Bump policyengine-uk to 2.102.3 for the FYE 2025 absolute poverty line - #536
Merged
Merged
Conversation
policyengine-uk 2.102.3 rebases the UK absolute poverty line to HBAI's FYE 2025 reference year (PolicyEngine/policyengine-uk#1889): 431.69 BHC / 373.89 AHC a week at FYE 2025. Certify policyengine-uk-data 1.56.16 for 2.102.3 on the publisher's compatibility claim (HF commit 78788372, evidence in its description), as #491 did for 2.90.2. Regenerate the bundle manifest, TRO sidecars and uv.lock. Update the certified-version test pins and refresh the UK model-surface snapshot; the UK household snapshots are unchanged. Fixes #535 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fold the certify-data fragment into 535.changed.md, as the certification skill asks for one fragment named for the issue. Revert two uv.lock marker changes (cffi/pycparser, pexpect/ptyprocess) that came from a newer uv re-encoding upstream metadata, not from this bump. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Merged on Max's go (decision d631, 2026-09-29), which carries out his d516 ruling to follow DWP's FYE 2025 absolute line. CI was green on e0d105e. An independent Opus 5.5 review approved, per the description. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #535
Summary
This bumps the bundled
policyengine-ukfrom 2.90.2 to 2.102.3. 2.102.3 rebases the UK absolute poverty line to HBAI's FYE 2025 reference year, as DWP has reported it since the March 2026 HBAI release (PolicyEngine/policyengine-uk#1889). The line is 60% of the unrounded FYE 2025 medians, £431.69 BHC / £373.89 AHC a week at FYE 2025 (HBAI table 2.4ts), with OBR CPI uprating after. FYE 2021 and earlier keep the FYE 2011 line, matching DWP's current split.absolute_bhcandabsolute_ahc, two of the four measurescalculate_uk_poverty_ratesreturns, readin_poverty_bhc/in_poverty_ahc. PolicyEngine headlinesabsolute_bhc(see #534). UK absolute poverty outputs rise.Certification
The certified UK data release stays policyengine-uk-data 1.56.16 (
enhanced_frs_2024_25), as #491 set it. Only the model moves.policyengine-uk==2.102.3was appended to the 1.56.16 release manifest'scompatible_model_packages, as Bump to policyengine-uk 2.90.2 and revert the UK certified default to enhanced FRS 2024-25 #491 did for 2.90.2: HF commit78788372. The evidence is in the commit description.scripts/bundle.py certify-data --country uk --data-producer populace --manifest-uri hf://model/policyengine/policyengine-uk-data-private@78788372…/releases/1.56.16/release_manifest.json --model-version 2.102.3. The basis islegacy_compatible_model_package, since the data was built with 2.89.2. Per the certifier's warning, the test suite is the arbiter.pyproject.tomlpins,uv.lock(policyengine-uk entries only), the bundle manifest and both TRO sidecars. The US sidecar changes only because it hashes the shared bundle manifest. The test pinsUK_MODEL_VERSIONandUK_DATA_RELEASE_REVISIONintests/test_release_manifests.py, andtests/test_models.py, are updated.What changes for users
All policyengine-uk changes since 2.90.2 come with this bump, not just the poverty line. The PolicyEngine-uk CHANGELOG from 2.90.3 to 2.102.3 lists them.
On the certified enhanced FRS, 2026-27, absolute poverty. This branch computed these end to end:
ensure_datasetsbuilt the year files with 2.102.3;policyengine-uk2.90.2 on its own year files.calculate_uk_poverty_by_age"child")For comparison, DWP projects 17% BHC and 24% AHC for children in FYE 2027 on the same line (DWP, Low income poverty projections for children, FYE 2026 to FYE 2031, 9 July 2026). DWP counts dependent children (under 16, or 16–19 in non-advanced education), not everyone aged 0–17. On HBAI's own definition, policyengine-uk#1889 reports 16.7% BHC and 24.1% AHC.
The UK model-surface snapshot (
tests/fixtures/household_calculator_snapshots/uk_model_surface.json) is refreshed withPE_UPDATE_SNAPSHOTS=1, as the certification skill prescribes for a model bump. Parameters rise from ~2,300 to ~2,600 and variables from ~800 to ~900, in 100s buckets. The four UK household snapshots are unchanged.Year files. The files
ensure_datasetsbuilds with 2.102.3 match the 2.90.2 ones in every column except 2026domestic_energy_consumption, which is 5.5% lower.policyengine-uk-data12a1e028,datasets/imputations/consumption.py) already prices energy at Ofgem Q2 2026 unit rates, so 2.90.2 was applying the price rise twice.Inputs this data doesn't have. 34 input variables added to policyengine-uk since 2.90.2 are absent from 1.56.16, so they take their defaults.
gov_balance+£0.13bn).mortgage_debt,consumer_debt,private_pension_wealth, and threecapital_gains_*components.tax_free_childcare_spend_routed_share, plus the take-up flagswould_claim_carers_allowanceandwould_claim_uc_childcare.This is a data gap, not an incompatibility. It closes when a data release built with a newer policyengine-uk is certified.
The "Which measure to headline" docs in #534 describe the new line and should merge with or after this PR.
Checks run locally
Full suite on Python 3.13, with the HF token: 1,187 passed, 9 skipped and 1 failed. The failure was the UK model-surface snapshot, which drifted as expected and was then refreshed. After the refresh, all 11 tests in
tests/test_household_calculator_snapshot.pypass.Independent review (Opus 5.5): APPROVE. Its findings on body accuracy, the second changelog fragment and unrelated
uv.lockmarker churn are addressed in the follow-up commit.make format,make lint,scripts/bundle.py checkandscripts/release_lock.pyall pass.🤖 Generated with Claude Code