Repository navigation
Review policyengine-uk 2.151.0 as an exact Budget wheel beside 2.147.2 - #38
Merged
Merged
Conversation
d2011's recommended pair (Microcosm a6299504, microcosm#1396) runs on policyengine-uk 2.151.0. Add its source guards, wheel attestation and file-by-file audit against 2.147.2, and run the Budget-wheel tests on both. No binding pin moves: #715's 2.147.2 / a133f37a pair stays pinned until d2011 is ruled and a certified release exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…2.151.0 change Review of 35def04: engine.household_income_bridge imports household_tax's and household_benefits' lists and mirrors household_benefits' council tax and uprating terms, but neither file was guarded, and both change in 2.151.0 (gambling_duty, widowed_parents_allowance). They are now guarded on 2.125.1, 2.147.2 and 2.151.0, with tag and installed-wheel bytes checked, and a test requires every policyengine_uk.variables module the package imports to be guarded on each live cut. The d2011 audit now covers all 27 PRs merged between 2.147.2 and 2.151.0, including LTT/LBTT (#2315, #2329), current_education (#2403), SPP (#2368), CTR (#2552), ESA (#2563) and energy projection (#2571). The guard count is 33, not 30. d1983's audit records the 2.125.1 to 2.147.2 household-list additions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 25, 2026
…nding Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…9 and #2569 exactly Review of a9b25b9: the band above GBP 2m on lease rent is 2% from 7 February 2020 (SSI 2020/24), not 5% from 25 January 2019; #2129 and #2569 change release scripts and a lock workflow, not uv.lock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
October 26, 2026 04:06
Contributor
Author
|
Merge audit (head
🤖 Generated with Claude Code |
This branch was successfully deployed
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.
Draft; review fix pushed, re-review pending. This adds policyengine-uk 2.151.0 as an exact, reviewed model version beside 2.147.2. It changes no binding pin.
Why now
d2011 chose the Microcosm cut the UK Budget dashboard certifies. Max ruled A on 25 October: María's 2.151.0 national and local-area pair, cut
a6299504, built at PolicyEngine/microcosm#1396 (67ee2ddf3), whoseuv.lockpins the 2.151.0 wheel this PR attests. The release is due around 23:00Z on Monday. The triple-lock bridge slot opens at 07:00Z on Tuesday. d1983 put the binding rebuild on #715's certified pair. That ruling's reason (Microcosm, clean data) holds for either cut, so this repo follows the pair d2011 certifies; the d2011 note says so. This PR does the version review ahead of time, so the switch (#39, stacked on this) is one pin commit after the release rather than a review on the critical path.What changes
model_horizon:UPSTREAM_2151/UPSTREAM_2151_PARAMETERSname the 2.151.0 bytes, andcheck_upstream()accepts exactly 2.151.0. The 2.147.2 absence guards (#2576's builders, the Savings Credit maximum, #2340's age addition) apply to it too. Any other version still fails closed.household_tax.pyandhousehold_benefits.pyare now guarded on 2.125.1, 2.147.2 and 2.151.0.engine.household_income_bridgeimports their lists and mirrors household_benefits' council tax and uprating terms, and both change in 2.151.0. A test requires everypolicyengine_uk.variablesmodule the package imports to be guarded on each live cut.data/certification/d2011-model-wheel.json: the wheel attestation, with archive SHA-256 equal to PyPI's metadata and all 3,176 RECORD members checked for digest and size. The generator first reproduced the committedd1983-model-wheel.jsonbyte for byte. Core 3.33.3 is unchanged.docs/d2011-upstream.md: every changed guard read against 2.147.2 (5 of 33 modules, all 11 parameter files), what it means for the engine, and all 27 PRs merged in the range, each read and classified.docs/d1983-upstream.mdrecords the household-list additions from 2.125.1 to 2.147.2.docs/REBUILD.md: what changes under d2011 A.What 2.151.0 changes for this model
gov.benefit_uprating_cpifollows September CPI, so April 2027's benefit uprating uses the path's September 2026 input (3.5% on the committed inputs), not 2.147.2's installed calendar-2026 forecast.path_followingalready has this branch.gov.benefit_uprating_cpion 2.147.2. #2576 is not in 2.151.0, so d1753's question is unchanged.fiscal_variablesreads the installed lists. Household tax and household benefits gain the same two, so they cancel inhousehold_income_bridge.expected_lttandexpected_lbtt(in gov_tax) now add the annual tax instead of multiplying it by 0.045, and residential lease rent is exempt. They depend on country, property values and rent, not income or the State Pension, so they move the gov_tax level, not the reforms' changes.current_educationcarry-forward (#2403), which reaches Pension Credit's qualifying young person and the SDP non-dependant test; SPP as earnings (#2368); CTR for UC claimants (#2552); IR-ESA ending on UC (#2563); declared-basis energy projection (#2571). Bridge step (a) measures them with the rest of the model change.model_horizonextends.Not in this PR (the pin switch, after d2011 and the release)
pyproject.toml,requirements-lock.txt, CI,datasets.py(the a6299504 artifact's revision and SHA-256, the release's version and manifest digest),config.PRIMARY_DATASET,data/binding-bridge.pending.json's endpoints, and the release wording inpipeline.pyandengine.py. That is #39.Invariants
check_upstream()accepts exactly the reviewed versions and refuses any changed byte in a guarded file, and any absent-guarded file present, for both 2.147.2 and 2.151.0.policyengine_uk.variablesmodule the package imports is guarded on 2.125.1, 2.147.2 and 2.151.0. The exception is the age addition, imported only to detect it, whose absence is guarded on 2.147.2 and 2.151.0.path_following's benefit check uses the index that wheel'sgov.benefit_uprating_cpinames, and the run fails on any other index.Verification
No survey or Microcosm simulation was run. Details are in
docs/d2011-upstream.md.test_datasets' pin-agreement tests, which fail by design because the binding pin is still 2.147.2.check_upstream()passes on 2.125.1, 2.147.2 and 2.151.0. A changed digest for either household list is refused on each.test_modelgives 26 passed on 2.151.0 and 23 passed, 3 skipped on 2.147.2.test_state_pension_age_additionandtest_engine_puregive 50 passed on each.check_state_pension_upstream.py --expect-age-addition absentandhousing_benefit_passport_preflight()pass.d2011 update (25 Oct ~20:50Z): Max ruled A. The triple-lock rebuild follows the certified 2.151.0 pair, with the a133 fallback if it isn't certified by Tue 27 Oct 18:00Z. The pin switch is #39, stacked on this.
🤖 Generated with Claude Code