Repository navigation
Description
Parent: #495 (workstream G of the UK-migration epic #665). Input: the swapped spine (#757, after #686/PR #747).
Why the epic's K table no longer applies
#495 sized the clone multiplier against the certified compact: a 535,080-row pool that "is already a 10× clone" (53,508 base ids × 10 tiers), giving ~823 rows per constituency at K=1 — already at US dense-arm scale (~775 records per CD).
The microcosm-built spine that replaces it is 52,846 households, not a 10× clone: (16,288 + 10,000) × 2 + 270, the record-count identity #747 proves exactly. At K=1 that is roughly 81 households per constituency, an order of magnitude below the figure the epic reasoned from. K must therefore be re-adjudicated from measured support on the new spine, and the epic's table re-derived rather than reused.
Scope
- Pilot input is the swapped spine, sha-pinned, with its declared weight kind and mass log — never the certified compact, and never upstream of the assembly seam.
- Dry-run first.
tools/build_uk_rowwise_dataset.py --dry-runwrites the full plan (rowwise_dry_run_plan.json): rows and bytes at each candidate K, exact expected per-constituency support from crosswalk populations × the pool's region mix, id-multiplier and source-lineage checks — no H5 written. - Real K=1 build, no solve. Ladder assignment via
assign_uk_geography_ladder+uk_geography_ladder_gateagainst the built full-UK artifact (build/uk/uk_oa_ladder_2021.npz, sha9c6d56b9…, 239,023 OAs / 650 constituencies / 361 LADs): 650/650 assigned, zero missing-geography rows,avoid_constituency_collisionson. - Fences carried, not laundered. The clone carries
populace_household_weight_kindandpopulace_mass_log_json, refuses an input whose weight kind it does not recognize, and asserts exact mass conservation against the input. - Source-lineage rule re-derived. The
household_id mod 10^8eFRS-grain lineage rule was written for the 10×-cloned pool; restate it for the new spine's id scheme so per-area "distinct source households" counts remain honest. - Diagnostics as the deliverable: per-area minimum/median rows, distinct source households, ESS by area, region mix — the measurement that justifies the K ruling.
- Adjudicate and record K, with the measured support behind it and the rows/bytes/memory ceiling at that K.
- Feed Adjudicate the UK spine grain at the ingest/calibration seam #688. The pilot's measured pre- and post-clone grain is the evidence the grain adjudication has been waiting for.
Out of scope
- Any solve, any target binding, any publication.
Acceptance
- Dry-run plan and a real K=1 artifact both produced on the licensed machine, every rung appending a Logbook row.
- Ladder gate green at 650/650, zero missing-geography rows, mass conserved exactly against the input, weight-kind and mass-log attrs present on the output.
- A written K ruling citing its own measurement, and Adjudicate the UK spine grain at the ingest/calibration seam #688 answerable from the receipts.
🤖 Generated with Claude Code
Activity
juaristi22 commentedon Aug 30, 2026
K adjudicated: K=4 approved (María, 2026-08-30) — measured on spine-i and confirmed on spine-k, ruling recorded in
experiments/761-uk-rowwise-pilot-receipts.md§R5 with the full evidence table in #815 (comment). K=4 becomes #762's declared--n-clones. This issue closes when PR #815 merges.Merge pull request #815 from PolicyEngine/uk-rowwise-pilot-761