Skip to content

First calibrated rowwise UK local candidate (#495 increment 6) #762

Closed

Description

@juaristi22

Parent: #495 (workstream G of the UK-migration epic #665). Depends on #708, the local target surface compile, the fence-enforcement issue, and increment 5's K ruling.

Why

This is the WS-G milestone: the first UK local artifact whose weights are solved under declared doctrine against targets compiled from Chronicle facts, on a spine microcosm built itself.

Scope

  1. One uniform doctrine solve at the adjudicated K via solve_uk_rowwise_weights_under_doctrine: national families and every area × metric row in one operator, uniform target weights, one declared cap and stretch bound, no per-target knobs. A miss is support work or target work, never a knob.
  2. Weight-kind transition recorded — importance → locally calibrated — with exactly one appended mass-change record carrying the canonical rowwise_calibration_mass_reason text.
  3. The rowwise release contract from the epic, in the manifest: identity chain (spine sha → source-stage shas), geography block (ladder sha, per-layer vintages, 650/650, gate pass), weights block (exact mass conservation, weight-kind chain, carried mass log, declared stretch bound), solve block (loss shape, cap, ratio bound, epochs, seed), per-family fit, past-cap census, per-area support with distinct-source counts.
  4. Adjudicate both doctrine constants against measured fit — the loss cap (10.0) and UK_LOCAL_MAX_WEIGHT_RATIO (100.0, against the US design bound of 5.0 and the exact-k ladder's 20.0). This is the revision path max_weight_ratio anchors differently per arm: 5x vs design (dense) but ~25x effective (sparse refit re-anchors) — declare one stretch contract #493 named and the reason Loss shape: flat cap at 1.0 makes past-cap rows free dumping grounds (17 rows pushed out in Build N); bounded-tail experiment + past-cap census diagnostic #492's past-cap census exists; confirm or revise, and record the measurement in local_doctrine.py and its pinned test.
  5. Score against the incumbent on a frozen local register — constituency and LA estimates versus uk-data's wide-format weights — plus weakest-family and weakest-area tables.
  6. Private publish only. populace-publish-release --repo-id policyengine/populace-uk-private --no-latest, immutable tag, dataset_role: non_default_local_area. Aggregate diagnostics are committable; household-grain rows never leave the private repo.

Out of scope

Acceptance

  • A calibrated rowwise candidate exists with the full manifest above, every rung in Logbook.
  • Constituency and LA estimates match or beat the incumbent on the frozen local register.
  • Both doctrine constants are either confirmed or revised, with the measurement recorded where the constant lives.
  • The artifact is loadable as a variant="local" entry and never moves latest.json.

🤖 Generated with Claude Code

Activity

  1. juaristi22 commented on Aug 27, 2026

    @juaristi22
    CollaboratorAuthor

    The cross-family review this issue owes now has a declared input: #802 (cross-grain target reconciliation — national wins, sub-national rescales, per-family rescale-vs-fence rulings). The census_disclosure_control_noise adjudication (#760 / PR #801, approved 2026-08-27, window to 2026-11-27) records the posture; #802's collision census and operator land before or with this increment's binding work.

  2. 164 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions