Skip to content

UK local release build 1: let a leg of deferred cells stand without a control, and renew the savings-interest diagnostic (#1301) - #1310

Open
juaristi22 wants to merge 2 commits into
mainfrom
uk-deferred-legs-1301
Open

juaristi22 wants to merge 2 commits into
mainfrom
uk-deferred-legs-1301

Conversation

@juaristi22

Copy link
Copy Markdown
Collaborator

The two changes the first local release build (#1301) needs on top of main 58b0f24. Build 1 runs from this PR's head, so merge it with a merge commit, never squash or rebase: the release records the build's commit, and it must stay in main's history (the runbook asks the same of the sign-off PR).

1. Let a leg of deferred cells stand without a control (d8b913d73)

#1307 merged at e119867af, one commit before its fix, 89cc6b9bb, reached the PR, so main does not have it. On main, the build's target compilation (uk.full.target_compilation, that is load_uk_full_target_inputs then compile_uk_full_target_surface) refuses the local surface:

cross-grain inconsistency 'exact:uk.household.count:eae2efd5da4f:region_over_la' has unparented lower-grain leg(s) ['E12000001', 'W92000004']

2. Renew the savings-interest diagnostic exclusion (d0f0fafec)

This is #1308's R0 (0610d6356), unchanged in the register: ons.savings_interest_income stays a measured diagnostic and moves from 2026-10-22 to 2027-01-08 (renewed by juaristi22 on 2026-10-16). It carries the one-line test update #1308's re-review asked for, since test_packaged_exclusions_load pins the entries approved on 2026-10-16.

  • The re-review recommends shipping R0 alone.
  • Without it, every dense sign-off would hit a hard stop on 22 October:
    • the build-2 gate clock range ends there;
    • the assembly deadline (build 2, its verification and the assembly) falls the same day;
    • the national line could not calibrate after it.
  • The register change is solve-changing, so it has to be in build 1's commit for build 2 to reuse build 1's solve.
  • Port the uk-data wave to policyengine-uk 2.134.4: stamp duty, Move to UC, national home values (sixth #1095 PR) #1308 drops the commit when it rebases, because the change is identical.

Checks

These ran locally at this head; CI runs the full suites.

  • Tests. The cross-grain, UK ledger-target and off-surface-cell test files pass. So does every engine-free test file that reads the measure-exclusion register: country spec, sign-off draft, full-build CLI and preparation, full targets, measure simulation, national graph, rowwise national role, solve scope, support floor and UC family.
  • Target compilation. On main plus the fix, against the pinned abf0921 feed, the build's target load and compile pass. deferred_legs_without_control names exactly two legs, E12000001 and W92000004, for contract:microcosm.high_value_homes.over_2m, and nothing else.
  • Problem support. The bound high-value-homes local-authority cells were checked against uk.full.problem's zero-support refusal, which stopped the 16 October dense build on cells the 400-home floor now defers. The check used the public Land Registry value knots and the OA ladder. Every bound cell has a constituency whose value distribution reaches the threshold.

No figure in this PR comes from licensed microdata.

🤖 Generated with Claude Code

juaristi22 and others added 2 commits October 18, 2026 02:09
Signing out the North East and Wales £2m region rows (4850088) left
their local-authority cells, all deferred by the 400-home floor, on legs
with no control. The small-cell rule adds such cells to the
reconciliation frame to take their share of a region control, so the
unparented-leg check then refused the surface:
compile_uk_full_target_surface stopped on the abf0921 feed, and build 1
would have failed at uk.full.target_compilation. Nothing in CI compiles
the full surface on the feed.

The local surface now passes the reconciliation the area rows that bind
nothing (its frame-only rows). A leg on which every open row is one of
them and every target is licensed empty needs no control: it is
receipted under deferred_legs_without_control instead of refused. A
bound row on such a leg, a frame-only row without the licence, and a row
of a target the leg is not licensed for are still orphans, as the
Scottish authority of an England-only target is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#866)

The ons.savings_interest_income measure exclusion lapses on 2026-10-22.
After that date no national calibration could run, since the window is
checked when the exclusions are applied, and the dense two-build flow's
gate clock and assembly deadline stop there too. The row stays a measured
diagnostic and is never fitted, as ruling R3 of 2026-09-22 set: the ONS
D.41 row is a national-accounts concept, while the model carries cash
interest, and the SPI interest rows are the fitting anchor. Renewed by
juaristi22 on 2026-10-16 in the sixth #1095 ports PR (#1308), and shipped
here ahead of it, unchanged, so that the first local release build stands
on it; #1308's re-review recommended shipping it alone. The
packaged-exclusions test pins the new window and the renewal note, and
the 2026-10-16 approvals are now the employer NICs diagnostic and this.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant