Repository navigation
Certify policyengine-uk 2.126.12 with policyengine-uk-data 1.58.0 - #585
Merged
Merged
Conversation
Certifies the pair on the publisher's compatibility claim in the 1.58.0 release manifest at HF commit 0aa3eee1 (manifest sha256 9bde769f), which appends policyengine-uk ==2.126.12 to the earlier claims. Core stays at 3.33.0. Regenerated together: the bundle manifest, both TRO sidecars, the lockfile (policyengine-uk only) and the test constants that pin the certified pair. The gate refuses an unclaimed version (2.126.11). Fixes #584 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
October 12, 2026 13:50
Contributor
Author
|
Merged by W4 (UK Budget release qualification) at reviewed head Gates
Review
Authority
|
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 #584
Certified versions
enhanced_frs_2024_25(sha2565ba399ea…b960b6)0aa3eee1(manifest sha2569bde769f…)legacy_compatible_model_package: the publisher's claim in that manifest (==2.122.2,==2.123.4,==2.125.1,==2.126.12)>=3.32.27)Before this PR, main (6.3.0) certified 1.58.0 with policyengine-uk 2.125.1 (#555). On merge, the
changedfragment makes this a patch release (6.3.1 if nothing else merges first).Why now. The UK Autumn Budget is on 28 October, and there is no model freeze (cos d1152), so the latest qualified pair is what runs on the day. 2.126.12 is the current policyengine-uk (released 04:31Z on 2026-10-12). Its #2305 makes April-dated reforms apply: a 21% basic rate keyed
2026-04-06.2100-12-31raises £6.67bn in 2026-27 on 2.126.12, against £0.00bn on 2.125.1.Certification
0aa3eee1, whose parent isfdeba385, changes onlyreleases/1.58.0/release_manifest.json, appendingpolicyengine-uk==2.126.12. The 1.58.0 tag still points at47bbb58d. The UK data session wrote the commit after a GPT-6.1 Sol review recomputed every figure in its description from the raw runs. The description carries the evidence summarised below.scripts/bundle.py certify-data --country uk --data-producer populace --manifest-uri hf://model/policyengine/policyengine-uk-data-private@0aa3eee1…/releases/1.58.0/release_manifest.json --model-version 2.126.12. It ran in an environment synced from this branch's lockfile, so the manifest records policyengine 6.3.0 like main. The gate accepts 2.126.12 on the claim and refuses an unclaimed version: 2.126.11 exits 2 with "matches neither the build-time model (2.122.2) nor any publisher compatibility claim".bundle.py generate --include-troswith the HF token;bundle.py check --include-trospasses);uv.lock, with uv 0.12.13 and--upgrade-package policyengine-ukonly: 12 lines, and its wheel sha2564aa6d7ba…matches the manifest's;tests/test_release_manifests.py,tests/test_models.py).docs/households.mdnames the core version, which did not change. No household snapshot drifted.Evidence (policyengine_uk.Microsimulation on the 1.58.0 artifact)
I ran 2.125.1 against 2.126.12, both with core 3.33.0, in clean environments for 2024, 2025, 2026 and 2030. These claims cover this dataset and these years; they are not proofs for every input.
Moves, 2.125.1 to 2.126.12:
What changes for users
These figures use policyengine.py's own API (
pe.uk.ensure_datasets,Simulation,Aggregate,calculate_uk_poverty_ratesand_by_age) for 2026. Both columns use the bundle's certified default dataset.policyengine_uk.Microsimulationrun on the same file exactly. Across environments with different numpy/pandas/microdf versions, the totals agree to within 3.1e-9 relative (£5.3m on household net income).In 2026-27, the poverty rates barely move: across absolute and relative, BHC and AHC, for everyone, children, working-age adults and people aged 65 and over, the largest move is 0.004pp. Absolute BHC is 15.0% overall in both columns, 20.0% for children and 15.0% for people aged 65 and over. Reforms change most: April-dated reform keys now apply.
Review
GPT-6.1 Sol reviewed the head independently and approved it (
~/reviews/w4-budget-ci-2026-10-11/pr585-round1-sol.md). It verified the eight-file diff, the pins, the manifest edit and its sha256, the wheel bytes against PyPI, the sidecar hashes, and the gate's acceptance and refusal. It also checked every figure here against the raw runs. Its one Low finding, that two differences should be called relative, is fixed above.Tests
The full suite passes on this branch, against the real certified dataset (HF token set): 1345 passed, 9 skipped, with no failures. Every household snapshot matches. All 9 skips are unrelated to the UK pair: 4 Belgium Axiom pilot tests need unpublished source checkouts (
microcosm-frame,RUN_BE_AXIOM_INTEGRATION), and 5 SPM development tests need the explicit local-wheel development manifest.axiom: n/a: data certification and package pin, no policy encoding
🤖 Generated with Claude Code