Repository navigation
Re-pin the UK Chronicle feed to abf0921 (#1300) - #1302
Conversation
PolicyEngine/chronicle#359 answers chronicle#326, #339, #356, #357 and #358. Three selector families change identity with it: - UC households by area: Chronicle splits each area-month by Payment Indicator and retires the all-claims cells. The five UC area targets bind payment_indicator: Yes (the three-plus operands name it too), so the cells count paid claims like the GB caseload that controls them. The bridge's factor moves from 0.921 to about 1.001, and a new CrossGrainBridge.max_factor_shift (0.02 on this bridge) refuses a factor far from one. - OBR table 4.9: twelve DWP lines are stamped Great Britain or England and Wales (TARGET_ID_GEOGRAPHY_PINS), and the obr.state_pension diagnostic reads its GB fact. No value changes. - DESNZ: the two sub-national vendor selections pin Great Britain, and the local-authority one reads gas by gas_year at all_domestic. SUBNATIONAL_PERIOD_TYPES names each fuel's period type in every lookup (gas year Y with calendar year Y), so no value moves. The Northern Ireland energy interim stays, reworded, until the change stacked on this one reads the share from the new NI facts (María's ruling of 2026-10-16). Regenerated: the vendored resources, national and local references and memberships, local census, coverage manifest, charter-H2 fixture, and two captured OBR rows. Synthetic UC bridge tests now use controls within the bound, and a feed-gated bus expectation that was stale on main is updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test_chronicle_184_uc_and_obr_references_compile_fail_closed compiled obr.universal_credit_in_cap against fixture facts stamped United Kingdom; the reference now pins Great Britain, the geography Chronicle stamps OBR table 4.9's DWP lines with. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e legs (#1300) The off-surface tests leave Scotland's authority tier incomplete on purpose, so the GB caseload spreads at factors far from one, which the bridge's new 2% bound refuses. They are about the shares, so a fixture lifts the bound; a new test shows the bound refusing the same incomplete tier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Independent adversarial review of this PR at 4c51843Run with Claude Code on 16–17 October 2026 at 4c51843: seven independent review lenses (correctness, method, generated artifacts, tests, claims against the diff, disclosure, a second fresh-eyes pass), then one to three skeptics per finding who tried to refute it; (k/n) is how many agreed. No builds and no feed-gated tests were run. The head has not moved since the review. Not ready to merge as it stands. The re-pin checks out: the feed identity, vendored resources, both memberships, the OBR geography pins and the DESNZ gas period types all hold. One thing blocks it. The local compile-parity receipt was not regenerated, so the release-blocking preflight gate Blocking
Should fix
Minor
Cross-PR
Disclosure checkThe disclosure lens and every verifier found no UKDS breach in #1302's public text or in the lines it adds or changes. What was checked:
Tests and tools runAll runs were at head 4c51843 unless noted.
Checked and found sound
Refuted during verification
Not covered
🤖 Generated with Claude Code |
The release-blocking preflight gate uk_ledger_compile_parity_local_incumbent_2025 compares each signed value with the live compile, so a receipt left on the old pin blocks every dense or full build and the release-cut certifier. Only the 3,508 UC area cells move: 3,507 signed values change, and one cell now matches the incumbent and leaves the receipt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The UC bridge's 2% bound read each leg after earlier groups had rescaled it. The exact-signature group rescales the authority tier onto the constituencies first, so the bridge's authority factor was one whatever the authorities said. The bound now reads each lower grain's input total. A surface with off-surface cells is bounded on the pass that carries them; the first pass records the factor without refusing. The shared operator validates the bound (finite and positive), and each leg's receipt records it with the factor it read. Tests: refusals below one and exactly at the bound, a grain another group rescales first, invalid bounds, the deferred check, a UK control at 0.92 of its cells. The off-surface refusal test is renamed for what it shows, and the incomplete-authority-tier test is rebuilt on a consistent control, with one off-surface case on the real rule. The UK loader names the declaration kind of a bad bound. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A gas meter row stamped by calendar year read as a missing fuel, and the gas-share applier blamed an authority without a gas network. The meter read now refuses a row on another period type by name. The test fixtures spell out the feed's period types instead of reading the constant under test, and a test reads the committed meter counts over the roster. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Four feed-gated helpers read the whole 7.4 GB consumer feed into memory to hash it, and the council-tax one parsed every row. They now hash it in chunks, and the council-tax helper parses only the MHCLG rows: the compile reports every other reference unsupported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The twelve OBR table 4.9 notes name the Great Britain or England and Wales code the fact now carries. - The two DESNZ notes describe the Northern Ireland interim as it stands past the re-pin. - The re-pin procedure says both compile-parity receipts are read at build time, lists the high-value home stock check, and records that a metadata move re-versions the national register. - The abf0921 history entry and the changelog fragment record the regenerated receipt, the UC value moves, the stock's unchanged inputs, the scoring-register re-freeze, and the period-type pairing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Re-worded with María's sign-off of 2026-10-17 (microcosm#1302 review): - uc_unit_vs_household_grain: the area series count paid claims since the abf0921 re-pin, as the national rows do, so the bridge moves the areas by about 0.1% and refuses a factor more than 2% from one at either grain. The adjudication records the rewording; its all-claims clause goes. - desnz_northern_ireland_interim_share: the interim stands until a change stacked on the re-pin derives Great Britain's part from Northern Ireland's facts, without naming a formula. Its census fence says the same, and the census is regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Addressed in 6715824, item by item: Blocking
Should fix
Minor
Cross-PR. #1305, #1306 and #1308 rebase onto this. #1305 also regenerates its own local references after its Northern Ireland change (the 694 kWh cells). Which Northern Ireland formula to keep (X-s02) is still open; #1302's texts no longer pick one. 🤖 Generated with Claude Code |
Re-review of this PR at 6715824Run with Claude Code on 17 October 2026, after the five commits answering the first review (d8493a3 to 1ced3d3) and 6715824.
VerdictThis PR is ready to merge on its own terms.
Should fix
Low
Nits
First-round dispositions
Cross-PR, now the critical path
Disclosure checkThe new public text is clean. That covers the six new commit messages, the regenerated receipt (values and two header counts only), the changelog, the docs, the selector notes, the body and the response comment. All figures are DWP, OBR, DESNZ or MHCLG admin figures, or synthetic test values. Tests and tools run
🤖 Generated with Claude Code |
The register still compared Microcosm with uk-data as it stood on 1 September (8629dbb). uk-data's main is now a43e8c5 (15 October), 136 commits on. Re-extracted there, the inventory has 57 modules. obr.py, hmrc_salary_sacrifice.py and tests/test_target_registry.py changed, and three sources are new. The re-extraction changes no existing concern's classification; one is corrected by hand (below). New concerns: - dwp_housing_benefit.py (uk-data#490) splits DWP's Housing Benefit line by age. The pension-age half is ported: Microcosm binds dwp.hb.amount_pension_age and the pension-age caseloads. The working-age half, net of supported and temporary accommodation, is routed to #867 and fenced against binding the full line. - dwp_pension_credit.py (uk-data#510) is ported: obr.pension_credit (stamped Great Britain by #1302) and the dwp.pension_credit rows. - ons_labour_market.py (uk-data#529) is a blocked source: the feed has no LFS employment series. The five obr.py line citations follow the functions that moved. Two verdicts are corrected. Band D entered uk-data's LA loss only as the multiplier in England's housing/council_tax_net proxy, never as a column. The council-tax outlier guard is a ported compile contract: each authority's cells compile from its own row, and the local compile-parity preflight pins every one. uk-data#482 and #484 are still open; a second re-pin follows when they merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The local-authority energy rows are levelled onto the LCFS stage's Energy Trends level, a United Kingdom total. DESNZ's sub-national figures cover Great Britain, so Great Britain's part of the level was taken at its share of UK households (ONS LFS), an interim fenced until Chronicle carried Northern Ireland's consumption. abf0921 (#1302) brought those rows, and María ruled on 16 October that the change stacked on the re-pin reads the share from them. Great Britain's part of the level is now its share of DESNZ's sub-national domestic consumption with Northern Ireland's row added (all domestic meters, 2024), so each fuel's factor is the UK level over the UK sub-national total. Northern Ireland's electricity runs on financial years from April and its gas on its own gas years. Both labelled 2024, they pair with Great Britain's 2024 as Great Britain's gas year pairs with its calendar-year electricity. DESNZ calls the Northern Ireland figures not directly comparable with Great Britain's, and the basis text and the receipt say so. desnz_local_energy_facts.json now vendors the two Northern Ireland rows in place of the four LFS household totals; its 697 meter rows are unchanged. The resource was cut with the tool's own vendor_resource from a grep superset of the pinned artifact's lines, under #1302's pin. The desnz_northern_ireland_interim_share adjudication and its census fence retire, and the two energy contract rows' notes say how Northern Ireland is taken out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
) Review of microcosm#1306, item I. The local compile-parity receipt, which the release-blocking preflight reads, still carried the retired household-share factor on its 694 kWh rows. Regenerated on abf0921 at this head, exactly those rows move (348 electricity, 346 gas, ledger_value only), each by its fuel's new factor over the interim's: 0.99901 and 1.01582. The local membership report moves on the same cells' holds and resolved values. Everything else in both files, and the local references, is byte-identical to #1302's full-feed regeneration. Both generators hold the whole feed in memory, which this machine cannot. They ran on a cut of the pinned artifact, digest checked against the pin: the constituency and local-authority rows matching a local contract selector. No local reference reads operands outside its own selector, so the cut holds every candidate, as the unchanged rows confirm. María signed off a rewording of the desnz_subnational_consumption_basis adjudication and its census fence on 2026-10-17. One sentence on Northern Ireland's periods and comparability is added, with dates unchanged, so the caveat stays under an adjudication now the interim's fence is gone. The census also changes: - DESNZ's two Northern Ireland publications are family sources, verified 2026-10-17. - The electricity note says Northern Ireland is published separately. - The module docstring and the verified-on comment no longer describe the interim. I's fragment says why the share stands over the plan's subtraction (María's ruling of 2026-10-17): the sub-national statistics run about 9% (electricity) and 12% (gas) above Energy Trends, and the share keeps both nations on that one basis. The re-pin history entry points here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On main after #1302: 25,327 compiled cells. The 18 Scottish BRMA rows are ledger-only by construction, and no signed value moves. The UC drift rationales now read their fixture/ours bands off the rows, and the support floor's deferred cells carry their own signed rationale. The release-blocking preflight gate uk_ledger_compile_parity_local_incumbent_2025 reads this receipt, so whichever of #1305, #1306, #1307 and #1308 lands last regenerates it on the combined tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After rebasing onto the #1300 re-pin, the references, memberships, both compile-parity receipts and the census are regenerated once from the final code against the pinned abf0921 feed, in the order the re-pin procedure gives. The rebase had kept main's version of each generated file at every conflict, so nothing in them was merged by hand. National: the two high-value homes region rows signed out below the floor leave the references and the receipt's ledger_only rows and are recorded as signed_excluded, 1,319 active references of 1,341 candidates. Local: the references are byte-identical to the rebased ones; the receipt drops the 2,323 deferred high-value homes cells, which leaves the union the #1302 re-review computed, and restates its 3,507 UC rationales in the new wording; the membership carries the floor rule's new text. No other value or row moves. The census check is current, the gate digests and the US spec-engine attestation are unchanged, and the count pins move to the regenerated files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The register still compared Microcosm with uk-data as it stood on 1 September (8629dbb). uk-data's main is now a43e8c5 (15 October), 136 commits on. Re-extracted there, the inventory has 57 modules. obr.py, hmrc_salary_sacrifice.py and tests/test_target_registry.py changed, and three sources are new. The re-extraction changes no existing concern's classification; one is corrected by hand (below). New concerns: - dwp_housing_benefit.py (uk-data#490) splits DWP's Housing Benefit line by age. The pension-age half is ported: Microcosm binds dwp.hb.amount_pension_age and the pension-age caseloads. The working-age half, net of supported and temporary accommodation, is routed to #867 and fenced against binding the full line. - dwp_pension_credit.py (uk-data#510) is ported: obr.pension_credit (stamped Great Britain by #1302) and the dwp.pension_credit rows. - ons_labour_market.py (uk-data#529) is a blocked source: the feed has no LFS employment series. The five obr.py line citations follow the functions that moved. Two verdicts are corrected. Band D entered uk-data's LA loss only as the multiplier in England's housing/council_tax_net proxy, never as a column. The council-tax outlier guard is a ported compile contract: each authority's cells compile from its own row, and the local compile-parity preflight pins every one. uk-data#482 and #484 are still open; a second re-pin follows when they merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The local-authority energy rows are levelled onto the LCFS stage's Energy Trends level, a United Kingdom total. DESNZ's sub-national figures cover Great Britain, so Great Britain's part of the level was taken at its share of UK households (ONS LFS), an interim fenced until Chronicle carried Northern Ireland's consumption. abf0921 (#1302) brought those rows, and María ruled on 16 October that the change stacked on the re-pin reads the share from them. Great Britain's part of the level is now its share of DESNZ's sub-national domestic consumption with Northern Ireland's row added (all domestic meters, 2024), so each fuel's factor is the UK level over the UK sub-national total. Northern Ireland's electricity runs on financial years from April and its gas on its own gas years. Both labelled 2024, they pair with Great Britain's 2024 as Great Britain's gas year pairs with its calendar-year electricity. DESNZ calls the Northern Ireland figures not directly comparable with Great Britain's, and the basis text and the receipt say so. desnz_local_energy_facts.json now vendors the two Northern Ireland rows in place of the four LFS household totals; its 697 meter rows are unchanged. The resource was cut with the tool's own vendor_resource from a grep superset of the pinned artifact's lines, under #1302's pin. The desnz_northern_ireland_interim_share adjudication and its census fence retire, and the two energy contract rows' notes say how Northern Ireland is taken out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
) Review of microcosm#1306, item I. The local compile-parity receipt, which the release-blocking preflight reads, still carried the retired household-share factor on its 694 kWh rows. Regenerated on abf0921 at this head, exactly those rows move (348 electricity, 346 gas, ledger_value only), each by its fuel's new factor over the interim's: 0.99901 and 1.01582. The local membership report moves on the same cells' holds and resolved values. Everything else in both files, and the local references, is byte-identical to #1302's full-feed regeneration. Both generators hold the whole feed in memory, which this machine cannot. They ran on a cut of the pinned artifact, digest checked against the pin: the constituency and local-authority rows matching a local contract selector. No local reference reads operands outside its own selector, so the cut holds every candidate, as the unchanged rows confirm. María signed off a rewording of the desnz_subnational_consumption_basis adjudication and its census fence on 2026-10-17. One sentence on Northern Ireland's periods and comparability is added, with dates unchanged, so the caveat stays under an adjudication now the interim's fence is gone. The census also changes: - DESNZ's two Northern Ireland publications are family sources, verified 2026-10-17. - The electricity note says Northern Ireland is published separately. - The module docstring and the verified-on comment no longer describe the interim. I's fragment says why the share stands over the plan's subtraction (María's ruling of 2026-10-17): the sub-national statistics run about 9% (electricity) and 12% (gas) above Energy Trends, and the share keeps both nations on that one basis. The re-pin history entry points here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@juaristi22 thanks, this is a post-merge review at Verdict: the re-pin is sound and nothing here needs reverting. There are no musts. Two shoulds on the new factor bound and four nits can go into one follow-up. I checked it against the list of re-pin needs from the chronicle#359 review, and every item is handled apart from the minor Should (follow-ups)
Nits
What looks right
What I checked
🤖 Generated with Claude Code |
Re-pins the UK Chronicle feed to PolicyEngine/chronicle
abf0921(PolicyEngine/chronicle#359, which answers chronicle#326, #339, #356, #357 and #358) and makes the fixes #1300 lists, so that nothing Microcosm binds stops resolving or silently changes meaning. Values move only for the UC area rows. The private-rent work for #1262 stacks on this branch.Fixes #1300.
Summary
dwp.uc.households_by_area(both grains) and the four child bands addpayment_indicatorto theirdimensionsand bindYes; the three-plus band's summed operands name it too. The area cells and the GB caseload that controls them now both count paid claims, so each cell takes its own area's paid share instead of the GB one, and the bridgenational_uc_caseload_vs_uc_households_by_areamoves from a factor of 0.921 to about 1.001 (the gap is about the size of DWP's "Unknown" area).CrossGrainBridgegainsmax_factor_shift, read fromuk/cross_grain_declarations.json. The UC bridge declares 0.02, so a factor more than 2% from one is refused: the two sides would no longer measure one quantity.TARGET_ID_GEOGRAPHY_PINSstamps eight lines Great Britain and four England and Wales, and theobr.state_pensiondiagnostic, whichdwp.state_pension.amountrequires, reads its Great Britain fact. No value changes.geography_vintage: publication_2025_nspl).gas_yearand electricity bycalendar_year, atdomestic_scope: all_domestic.energy_pricing.SUBNATIONAL_PERIOD_TYPES). Gas year Y pairs with calendar year Y, as the rows were read before Chronicle stamped the gas period, so the gas-connected shares and the GB levels do not move.d953306d…(thegas_yearperiod type). The NZ pin moves at its own next re-pin, anddocs/uk-chronicle-feed-repin.mdnow names the two tests that restate the UK pin.Regenerated
In the procedure's order, on current main:
source_feed;uk_ledger_compile_parity_local_incumbent_2025compares its signed values with the live compile, so every dense or full build and the release-cut certifier read it. Only the 3,508 UC cells move: 3,507 signed values change, and one cell now matches the incumbent and leaves the receipt.What moves
The membership reports show which facts the references resolve:
Status counts are unchanged on both surfaces: 1,291 national and 25,309 local active references, none dropped.
Not run locally
On María's call, to unblock the stacked work:
load_uk_full_target_inputs) and the release-cut certifier were not measured on this pin, which has 1,499,301 rows. The national arms ran at this head with flat peak memory, but those two paths keep more of the parsed feed alive.dfi_ni.bus.passenger_receiptsexpected 150,082,817.49 where the feed and the committed membership give 152,500,000. That expectation was stale on main too (it fails there on the old feed), and is updated here.Follow-ups
735820cin its provenance. Its feed inputs (TS054 tenure, the OBR non-owner share, the HPSSA seat cells) are the same 26,212 facts onabf0921, so it was not rebuilt. The re-pin procedure now lists the check.Tests
Touched and fixture-reading tests pass locally:
Three ledger-target tests ran synthetic UC controls at 2 to 4 times their area cells through the real bridge, so they now use controls within 1%. One keeps the old 2× case as a refusal, and a UK control at 0.92 of its cells is refused too;
Four feed-gated test helpers hash the feed in chunks instead of reading all 7.4 GB into memory, and the council-tax one parses only the MHCLG rows.
🤖 Generated with Claude Code