You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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-run writes 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_gate against the built full-UK artifact (build/uk/uk_oa_ladder_2021.npz, sha 9c6d56b9…, 239,023 OAs / 650 constituencies / 361 LADs): 650/650 assigned, zero missing-geography rows, avoid_constituency_collisions on.
Fences carried, not laundered. The clone carries populace_household_weight_kind and populace_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^8 eFRS-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.
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.
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
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.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.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.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.Out of scope
Acceptance
🤖 Generated with Claude Code