Skip to content

Bump to policyengine-uk 2.90.2 and revert the UK certified default to enhanced FRS 2024-25 - #491

Merged
MaxGhenis merged 6 commits into
mainfrom
bump-pe-uk-deductions
Aug 21, 2026
Merged

Bump to policyengine-uk 2.90.2 and revert the UK certified default to enhanced FRS 2024-25#491
MaxGhenis merged 6 commits into
mainfrom
bump-pe-uk-deductions

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps the bundle to policyengine-uk 2.90.2 + policyengine-core 3.30.1, and — per the UC caseload postmortem (policyengine-uk-data discussion #464) — reverts the UK certified default from Microcosm's populace_uk_2023 to policyengine-uk-data's enhanced_frs_2024_25 (release 1.56.16).

Why the revert

Measured at 2025 (annual basis, weighted benefit units with universal_credit > 0):

artifact UC benefit units UC spend deducting benefit units
populace_uk_2023 @ dd68c73 (what this PR previously certified) 3.26m £36.9bn
enhanced_frs_2024_25 @ 1.56.16 (this PR) 6.35m £75.3bn 3.02m / £1.86bn / 47.6%
administrative / OBR ~6.7m £75.8bn ~3.1m / ~£2.0bn / 46–47%

populace_uk_2023 won its June certification rotation on a 148-target surface containing no benefit targets (PolicyEngine/microcosm#701); the certified default should not ship the least accurate artifact on the second-largest working-age benefit.

Re-flip condition (coverage floor): populace_uk returns as the certified default when the microcosm UC chain (PolicyEngine/chronicle#184, PolicyEngine/microcosm#727, PolicyEngine/microcosm#729) lands, the rebuild passes a benefits-inclusive surface, and the rotation is scored with UC caseload and spend within 10% of the OBR/DWP counterparts. Proposal: make that floor a standing certification requirement, so no future default can be selected on a surface missing a major program.

Certification provenance

  • Publisher compatibility claim policyengine-uk==2.90.2 appended to the 1.56.16 release manifest (HF commit 2966541f), with the measurement evidence recorded in the commit message and policyengine-uk-data#452.
  • Certification basis: compatible_model_packages (the data was built with 2.89.2 — disclosed in the bundle certification block; per the certifier's own warning, the test suite is the arbiter, and the full battery runs in this PR).
  • Manifest URI pinned at the claim commit; all seven datasets (enhanced/base FRS 2024-25 + tiny variants + LA/constituency/local-geography weights) carry sha256s and are verified under the strict runtime contract. Note: data_producer: "populace" in the bundle block names that verification contract (mandatory per-dataset sha256), not the producing repo — the legacy certification path is an unimplemented stub (certification.py), a follow-up candidate.
  • populace-uk-2023-dd68c73 remains published on HF for explicit-URI consumers; it is no longer the certified default and needs no publisher claim.

Also in this PR (unchanged from the original bump)

  • policyengine-uk 2.89.2 → 2.90.2 (brings the UC deductions module, policyengine-uk#1815), policyengine-core → 3.30.1.
  • TRO sidecars and the household-calculator snapshot regenerated against the new default dataset.

🤖 Generated with Claude Code

Brings Universal Credit deductions into the certified bundle: the Fair
Repayment Rate cap history, latent deduction demand calibrated to DWP
deductions statistics, and reform levers (cap changes, per-type
abolition, protected minimum floor). Core moves to 3.30.1 to satisfy
policyengine-uk 2.90.x. Regenerates the trace TRO sidecars and the UK
model version surface snapshot to match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

CI failure is the certification gate working as designed: the UK data release (populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z) declares compatible_model_packages: [policyengine-uk==2.89.2] only, so certifying for 2.90.2 fails on both bases (not built-with, no publisher claim). Everything else here is done — pins, lockfile, TRO sidecars, version-surface snapshot, and the full suite passes locally on the pinned pair (783 tests), which per the certification doctrine is the arbiter once a claim exists.

Remaining sequence:

  1. Publisher side (microcosm-data tooling): append a policyengine-uk==2.90.2 compatibility claim to the dd68c73 release manifest — the same pattern as the earlier release's post-hoc ==2.88.20 claim.
  2. Then on this branch: uv run python scripts/certify_data_release.py --country uk --manifest-uri "hf://dataset/policyengine/populace-uk-private@<new-revision>/releases/.../release_manifest.json" --model-version 2.90.2 (in the pre-bump environment, per the script's ordering), commit the certification block, and CI goes green.

Ordering note for future bumps: certify before moving pins — the import-time guard makes the post-bump environment unable to run the certifier.

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Data point for the certification decision here (not a hold request — sequencing is yours):

The release this PR certifies (populace-uk-2023-dd68c73) measures 3.26m UC benefit units / £36.9bn UC spend at 2025 against ~6.7m households (DWP, 2025 average) and £75.8bn (OBR) — its calibration surface does not bind UC. Full diagnosis and cross-artifact table: PolicyEngine/microcosm#701 and policyengine-uk-data#452 (diagnosis comments). By comparison, policyengine-uk-data's enhanced FRS at v1.56.14 measures 6.40m / £77.6bn.

Implication: UC-touching aggregates through this bundle (including the new deductions module's counts and costs) run at less than half of administrative levels, while per-household statistics remain valid. Options are to certify as-is and note the caveat (unblocks the WPI beat; per-household UC deductions results are unaffected), or hold for a data-side fix per microcosm#701. Either way the caveat belongs in the bundle notes.

…-25 (1.56.16)

Per the UC caseload postmortem (policyengine-uk-data discussion #464):
populace_uk_2023 carries 3.26m UC benefit units / GBP36.9bn against
~6.7m / GBP75.8bn admin-OBR truth, because its calibration surface has
no benefit targets (microcosm#701). enhanced_frs_2024_25 @1.56.16
measures 6.35m / GBP75.3bn with deductions within ~5-8% of DWP.

Certified on the publisher's compatibility claim (manifest commit
2966541f); full suite green (783 passed) as the arbiter. Also fixes the
publisher-claim basis vocabulary so claims-certified bundles pass the
offline import fallback, and keeps populace_uk_2023 plus the 2023-24
FRS names resolvable via dataset overlays at pinned revisions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Update bundle to policyengine-uk 2.90.2 (UC deductions) and core 3.30.1 Bump to policyengine-uk 2.90.2 and revert the UK certified default to enhanced FRS 2024-25 Aug 21, 2026
MaxGhenis and others added 4 commits August 20, 2026 20:16
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Resolves the generated-file conflicts (bundle manifest + TRO sidecars) by
taking main's manifest, re-running UK certification against the 1.56.16
release, re-adding the dataset overlays, and regenerating both sidecars.
The merge took main's policyengine-core==3.30.0 pins while policyengine-uk
2.90.2 requires 3.30.1; synced via bundle.py update-packages, regenerated
derived artifacts and the lock, and stamped the UK bundle id at the current
package version (the editable install's stale dist-info had pinned it at
5.0.1).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Addresses the second reviewer's findings: the certification docs taught the
retired compatibility_basis value, and countries.md still named the previous
UK default.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis merged commit fa0d69c into main Aug 21, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant