From edd051ecc02a8c84dc929d851bd48942eda4fe32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 7 Nov 2026 10:24:37 +0000 Subject: [PATCH 1/2] Defer Carmarthenshire's band-I council tax cell for the pair's local build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The local-area build on main's spine (dc00d158f) stopped at uk.full.problem: Carmarthenshire (W06000010) has a nonzero Welsh band-I council tax target and no band-I household in the K=15 pool, while every other Welsh band-I cell above the dwelling floor drew at least one band-I clone. As Shetland's band H was under microcosm#929, the cell is deferred (council_tax_band_i_spine_support_absent), on María's ruling of 7 Nov. Regenerated on the local cut of feed 64753803: the local references and membership, the local census and the local compile-parity receipt. Co-Authored-By: Claude Opus 5.5 --- ...carmarthenshire-band-i-deferral.changed.md | 1 + ...cal_incumbent_2025_signed_differences.json | 13 ++--- .../uk/local_target_reference_membership.json | 25 ++++++--- .../build/uk/local_target_references.json | 53 ------------------- .../uk/test_uk_battery_bindings.py | 12 +++-- .../uk/test_uk_council_tax_targets.py | 27 +++++++--- tools/generate_uk_local_target_references.py | 16 ++++++ 7 files changed, 64 insertions(+), 83 deletions(-) create mode 100644 changelog.d/1095-uk-carmarthenshire-band-i-deferral.changed.md diff --git a/changelog.d/1095-uk-carmarthenshire-band-i-deferral.changed.md b/changelog.d/1095-uk-carmarthenshire-band-i-deferral.changed.md new file mode 100644 index 0000000000..eeb480593d --- /dev/null +++ b/changelog.d/1095-uk-carmarthenshire-band-i-deferral.changed.md @@ -0,0 +1 @@ +The local line defers Carmarthenshire's (W06000010) band-I council tax cell (`welshgov.council_tax_stock.by_area.band_i`), as Shetland's band H is deferred (microcosm#929). On the spine of microcosm#1535's merge the K=15 pool has no band-I household there, so the rowwise driver's support check refused the cell, while every other Welsh band-I cell above the dwelling floor binds. The cell leaves the active local surface (27,168 to 27,167 references), and the local compile-parity receipt drops its ledger-only row (María's ruling of 7 November 2026, microcosm#1095). diff --git a/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_local_incumbent_2025_signed_differences.json b/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_local_incumbent_2025_signed_differences.json index 418ae4297a..84c116e76e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_local_incumbent_2025_signed_differences.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_local_incumbent_2025_signed_differences.json @@ -1,11 +1,11 @@ { - "compiled_count": 27168, + "compiled_count": 27167, "counts_by_kind": { "calibration_drift": 19274, "fixture_only": 4267, - "ledger_only": 7890 + "ledger_only": 7889 }, - "difference_count": 31431, + "difference_count": 31430, "differences": [ { "fixture_value": 70.0, @@ -85036,13 +85036,6 @@ "period": 2025, "reason": "No incumbent counterpart: the incumbent bound VOA local rows for England only, and Wales alone has a band I. Microcosm binds the 22 Welsh authorities' StatsWales CT1 chargeable dwellings by band A-I (a1 minus h7 empty minus h8 second homes; chronicle#264), microcosm#929." }, - { - "kind": "ledger_only", - "ledger_value": 72.0, - "name": "welshgov.council_tax_stock.by_area.band_i@W06000010", - "period": 2025, - "reason": "No incumbent counterpart: the incumbent bound VOA local rows for England only, and Wales alone has a band I. Microcosm binds the 22 Welsh authorities' StatsWales CT1 chargeable dwellings by band A-I (a1 minus h7 empty minus h8 second homes; chronicle#264), microcosm#929." - }, { "kind": "ledger_only", "ledger_value": 500.0, diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json b/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json index f062223afc..ace7235fdd 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json @@ -3,12 +3,12 @@ "target_period": 2025, "candidate_count": 31347, "contract_target_count": 62, - "active_reference_count": 27168, + "active_reference_count": 27167, "status_counts": { - "active": 27168, + "active": 27167, "no_fact_for_area": 1247, "signed_deferral_compile_error": 1, - "signed_deferred": 2931 + "signed_deferred": 2932 }, "areas_by_geography_level": { "constituency": [ @@ -12511,6 +12511,16 @@ ], "defer_if_compiles": true }, + { + "target_id": "welshgov.council_tax_stock.by_area.band_i", + "geography_level": "local_authority", + "reason_id": "council_tax_band_i_spine_support_absent", + "rationale": "The dense pool on the spine of microcosm#1535's merge leaves Carmarthenshire (W06000010) with no band-I household at the ruled K=15: the rowwise driver's support check refuses the cell (nonzero target, zero household support) while every other Welsh band-I cell above the dwelling floor draws at least one band-I clone and binds. The cell bound on the spine of microcosm#1491's pair (Mar\u00eda's ruling of 2026-11-07, microcosm#1095).", + "area_ids": [ + "W06000010" + ], + "defer_if_compiles": true + }, { "target_id": "microcosm.high_value_homes.over_1m", "geography_level": "constituency", @@ -496633,13 +496643,12 @@ "target_id": "welshgov.council_tax_stock.by_area.band_i", "geography_level": "local_authority", "geography_id": "W06000010", - "status": "active", + "status": "signed_deferred", "matched_fact_count_overall": 120, "matched_fact_count_at_or_before_period": 90, - "resolved_period": 2025, - "resolved_value": 72.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_362f4c4d54644db0f138c811" + "signed_reason_id": "council_tax_band_i_spine_support_absent", + "signed_rationale": "The dense pool on the spine of microcosm#1535's merge leaves Carmarthenshire (W06000010) with no band-I household at the ruled K=15: the rowwise driver's support check refuses the cell (nonzero target, zero household support) while every other Welsh band-I cell above the dwelling floor draws at least one band-I clone and binds. The cell bound on the spine of microcosm#1491's pair (Mar\u00eda's ruling of 2026-11-07, microcosm#1095).", + "deferred_value": 72.0 }, { "name": "welshgov.council_tax_stock.by_area.band_i@W06000011", diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json b/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json index 2b50fc4728..98673fd863 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json @@ -627226,59 +627226,6 @@ } ] }, - { - "name": "welshgov.council_tax_stock.by_area.band_i@W06000010", - "ledger_selector": { - "source_name": "welshgov", - "record_set_spec_id": [ - "uk.local_geography.council_tax.wales_ct1.a1_all_chargeable_dwellings.v1", - "uk.local_geography.council_tax.wales_ct1.h7_total_chargeable_empty_properties.v1", - "uk.local_geography.council_tax.wales_ct1.h8_total_chargeable_second_homes.v1" - ], - "geography_level": "local_authority", - "geography_id": "W06000010" - }, - "entity": "household", - "measure": "council_tax/band_i", - "family": "council_tax_stock", - "period": 2025, - "metadata": { - "contract_target_id": "welshgov.council_tax_stock.by_area.band_i", - "measure_kind": "prepared_column", - "geography_level": "local_authority", - "geography_id": "W06000010" - }, - "value_operation": "linear_combination", - "value_operands": [ - { - "weight": 1, - "source_concept": "welshgov.council_tax_dwellings.all_chargeable_dwellings", - "source_measure_id": "a1", - "label": "a1[I]", - "dimension_values": { - "council_tax_band": "I" - } - }, - { - "weight": -1, - "source_concept": "welshgov.council_tax_dwellings.total_chargeable_empty_properties", - "source_measure_id": "h7", - "label": "h7[I]", - "dimension_values": { - "council_tax_band": "I" - } - }, - { - "weight": -1, - "source_concept": "welshgov.council_tax_dwellings.total_chargeable_second_homes", - "source_measure_id": "h8", - "label": "h8[I]", - "dimension_values": { - "council_tax_band": "I" - } - } - ] - }, { "name": "welshgov.council_tax_stock.by_area.band_i@W06000011", "ledger_selector": { diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_battery_bindings.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_battery_bindings.py index 8f57fa9f50..242d5d872d 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_battery_bindings.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_battery_bindings.py @@ -1812,12 +1812,14 @@ def test_local_default_target_surface_uses_metric_names_and_signed_deferrals( # taxpayers with it by constituency and authority: 2,022 cells, 2,016 # of them compiled, less the 40 the rounded-thousand floor defers # (microcosm#1420: the 20 count cells HMRC publishes at 5,000 or fewer - # and their amounts). - assert result.details["candidate_targets"] == 27_168 + # and their amounts). The pair built on microcosm#1535's merge defers + # Carmarthenshire's band-I cell, which the support check refused. + assert result.details["candidate_targets"] == 27_167 assert result.details["reference_targets"] == 31_347 - # Only the 4,179 signed area deferrals and absences remain (2,100 + # Only the 4,180 signed area deferrals and absences remain (2,100 # before microcosm#929 bound the Welsh and Scottish council-tax cells; - # Shetland band H is the one Scottish support deferral; microcosm#1123 + # Shetland band H is the one Scottish support deferral and + # Carmarthenshire band I the one Welsh; microcosm#1123 # adds the three higher rate taxpayer gaps; microcosm#1240 the six # high-value homes cells above; microcosm#1278 signs the two # small-cell rules, which defer 16 council-tax band cells and 192 @@ -1829,7 +1831,7 @@ def test_local_default_target_surface_uses_metric_names_and_signed_deferrals( # London, and the 40 under the rounded-thousand floor); the 1,011 # household rows are ordinary Chronicle-compiled references. exclusions = result.details["reviewed_exclusions"] - assert len(exclusions) == 4_179 + assert len(exclusions) == 4_180 households = [ name for name in exclusions if str(name).startswith("households@") ] diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_council_tax_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_council_tax_targets.py index 83aad2777c..717dff7a7a 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_council_tax_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_council_tax_targets.py @@ -283,12 +283,14 @@ def test_council_tax_band_cells_activate_and_defer_as_measured() -> None: floor = _SMALL_CELLS if _floor_rule_is_signed() else {} expected = { "mhclg": ("abcdefgh", 296, {"g": 294 - floor.get("mhclg_g", 0), "h": 0}, 294), + # Carmarthenshire band I has no band-I clone at K=15 on the spine of + # microcosm#1535's merge (support deferral). "welshgov": ( "abcdefghi", 22, { "h": 22 - floor.get("welshgov_h", 0), - "i": 22 - floor.get("welshgov_i", 0), + "i": 21 - floor.get("welshgov_i", 0), }, 22, ), @@ -336,6 +338,7 @@ def test_council_tax_signed_deferrals_pin_exact_gaps() -> None: # publishes the City's band A. assert set(by_reason) == { "council_tax_band_h_spine_support_absent", + "council_tax_band_i_spine_support_absent", *(["council_tax_band_household_floor"] if _floor_rule_is_signed() else []), } floor = by_reason.get("council_tax_band_household_floor", []) @@ -386,9 +389,18 @@ def test_council_tax_signed_deferrals_pin_exact_gaps() -> None: "76 of the 296 authorities draw no band-H household" in band_h[0]["rationale"] ) assert "84 of 296 at K=10" in band_h[0]["rationale"] + band_i = by_reason["council_tax_band_i_spine_support_absent"] + # Wales defers the one council the rowwise support check refuses at K=15 + # on the spine of microcosm#1535's merge (Carmarthenshire); the other + # band-I cells above the dwelling floor bind. + assert [(row["target_id"], row["area_ids"]) for row in band_i] == [ + ("welshgov.council_tax_stock.by_area.band_i", ["W06000010"]) + ] + assert band_i[0]["defer_if_compiles"] is True + assert "zero household support" in band_i[0]["rationale"] -def test_council_tax_activation_binds_2511_references_less_the_small_cells() -> None: +def test_council_tax_activation_binds_2510_references_less_the_small_cells() -> None: membership = _membership() active = 0 for target_id, payload in membership["targets"].items(): @@ -399,13 +411,14 @@ def test_council_tax_activation_binds_2511_references_less_the_small_cells() -> candidates = payload["geography_levels"]["local_authority"]["candidates"] active += sum(row["status"] == "active" for row in candidates) # The band cells (the single adult discount cells are counted below): - # 2,058 English A-G cells (microcosm#762) + 198 Welsh A-I + 255 Scottish - # A-H (microcosm#929; Shetland band H is a support deferral); the 296 - # English band-H cells stay deferred, and the 16 cells below the - # small-cell floor defer by rule once it is signed (microcosm#1123 item 7). + # 2,058 English A-G cells (microcosm#762) + 197 Welsh A-I + 255 Scottish + # A-H (microcosm#929; Shetland band H and, on the spine of microcosm#1535's + # merge, Carmarthenshire band I are support deferrals); the 296 English + # band-H cells stay deferred, and the 16 cells below the small-cell floor + # defer by rule once it is signed (microcosm#1123 item 7). deferred = sum(_SMALL_CELLS.values()) if _floor_rule_is_signed() else 0 assert sum(_SMALL_CELLS.values()) == 16 - assert active == 2_511 - deferred + assert active == 2_510 - deferred def test_barnsley_and_sheffield_bind_their_2025_rows_through_the_code_aliases() -> None: diff --git a/tools/generate_uk_local_target_references.py b/tools/generate_uk_local_target_references.py index 51d638913e..944b2b9ace 100644 --- a/tools/generate_uk_local_target_references.py +++ b/tools/generate_uk_local_target_references.py @@ -663,6 +663,22 @@ def add( area_ids=("S12000027",), defer_if_compiles=True, ) + add( + target_id="welshgov.council_tax_stock.by_area.band_i", + geography_level="local_authority", + reason_id="council_tax_band_i_spine_support_absent", + rationale=( + "The dense pool on the spine of microcosm#1535's merge leaves " + "Carmarthenshire (W06000010) with no band-I household at the ruled " + "K=15: the rowwise driver's support check refuses the cell (nonzero " + "target, zero household support) while every other Welsh band-I " + "cell above the dwelling floor draws at least one band-I clone and " + "binds. The cell bound on the spine of microcosm#1491's pair " + "(María's ruling of 2026-11-07, microcosm#1095)." + ), + area_ids=("W06000010",), + defer_if_compiles=True, + ) # microcosm#1301: the high-value homes family is controlled by its region # rows on the local line and binds its local-authority cells down to the # signed hvcts_la_household_floor rule, so its constituency level is From 03c31df565276e580d4cc8b0daa0099d88e4f923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 7 Nov 2026 17:31:39 +0000 Subject: [PATCH 2/2] Sign the pair's dense build-1 gate-only failures for the local line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (at edd051ecc, review date 2026-11-07) stopped at the terminal gates on uk_local_target_fit alone. The draft from tools/draft_uk_dense_signoff.py, approved by María on 7 Nov: 5 national target-fit rows and 6 local target-fit cells signed for the local line, 13 entries build 2 would fail retired, and the 6 area-support entries kept. Every signed row stays bound in the solve, and build 2 reuses build 1's solve (microcosm#1301). Co-Authored-By: Claude Opus 5.5 --- ...301-uk-dense-signoff-2026-11-07.changed.md | 1 + .../local_target_fit_reviewed_exclusions.json | 104 ++++++------------ .../uk/target_fit_reviewed_exclusions.json | 74 ++++++++----- .../engine_free/uk/test_uk_terminal_gates.py | 24 ++-- 4 files changed, 91 insertions(+), 112 deletions(-) create mode 100644 changelog.d/1301-uk-dense-signoff-2026-11-07.changed.md diff --git a/changelog.d/1301-uk-dense-signoff-2026-11-07.changed.md b/changelog.d/1301-uk-dense-signoff-2026-11-07.changed.md new file mode 100644 index 0000000000..6709957e04 --- /dev/null +++ b/changelog.d/1301-uk-dense-signoff-2026-11-07.changed.md @@ -0,0 +1 @@ +Sign dense build 1's gate-only failures for the local line (microcosm#1301, attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9): 5 national target-fit rows, 6 local target-fit cells and 0 areas below the support floor, approved 2026-11-07; 13 entries that build 2 would fail are retired. Every signed row stays bound in the solve, each entry suppresses only the local line's release fence, and a build in which a signed row passes fails its entry as stale. diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_target_fit_reviewed_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/local_target_fit_reviewed_exclusions.json index 0323b2e0a6..6f06f1cd3d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_target_fit_reviewed_exclusions.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_target_fit_reviewed_exclusions.json @@ -112,16 +112,6 @@ "local" ] }, - "council_tax/S12000013/council_tax/band_a": { - "reason": "Gate-only sign-off of the local cell council_tax/S12000013/council_tax/band_a on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261018T161007Z-35fb4c89 (full gate report sha256 46d42e6abf5fa8eaf08e3301a982703f113838c41cb7869340a3a41bafc6407f) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", - "approved_by": "juaristi22", - "adjudication": "Gate-only sign-off of the local release's measured build, drafted from its run (microcosm#1301, microcosm#1310).", - "approved_on": "2026-10-19", - "expires_on": "2026-11-16", - "release_lines": [ - "local" - ] - }, "council_tax/E09000020/council_tax/band_b": { "reason": "Gate-only sign-off of the local cell council_tax/E09000020/council_tax/band_b on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261026T091056Z-824870f6 (full gate report sha256 abf245413ca0809f9f261e650c352ef310d11e19960b8e4c5ade3bc57dddf411) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", @@ -172,16 +162,6 @@ "local" ] }, - "age_structure/E14001410/age/20_30": { - "reason": "Gate-only sign-off of the local cell age_structure/E14001410/age/20_30 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261027T022836Z-d5f72865 (full gate report sha256 a859f46bd70604adac1b7d6cd419c6a3aae87828a0943d318b3722022e6b2e00) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", - "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route, drafted from the first dense build of the pair on microcosm#1411 (sign-off 2026-10-27)", - "approved_on": "2026-10-27", - "expires_on": "2026-11-24", - "release_lines": [ - "local" - ] - }, "council_tax/E09000033/council_tax/band_g": { "reason": "Gate-only sign-off of the local cell council_tax/E09000033/council_tax/band_g on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261027T022836Z-d5f72865 (full gate report sha256 a859f46bd70604adac1b7d6cd419c6a3aae87828a0943d318b3722022e6b2e00) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", @@ -192,26 +172,6 @@ "local" ] }, - "council_tax/S12000013/council_tax/band_f": { - "reason": "Gate-only sign-off of the local cell council_tax/S12000013/council_tax/band_f on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261027T022836Z-d5f72865 (full gate report sha256 a859f46bd70604adac1b7d6cd419c6a3aae87828a0943d318b3722022e6b2e00) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", - "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route, drafted from the first dense build of the pair on microcosm#1411 (sign-off 2026-10-27)", - "approved_on": "2026-10-27", - "expires_on": "2026-11-24", - "release_lines": [ - "local" - ] - }, - "age_structure/E08000003/age/20_30": { - "reason": "Gate-only sign-off of the local cell age_structure/E08000003/age/20_30 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261102T182958Z-78667c3a (full gate report sha256 7f7d66cc44ab2370a126d344cba66a923be871291f0397ef4e8496bf060f57f8) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", - "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1428 (sign-off 2026-11-03)", - "approved_on": "2026-11-03", - "expires_on": "2026-12-01", - "release_lines": [ - "local" - ] - }, "council_tax/E08000028/council_tax/band_f": { "reason": "Gate-only sign-off of the local cell council_tax/E08000028/council_tax/band_f on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261102T182958Z-78667c3a (full gate report sha256 7f7d66cc44ab2370a126d344cba66a923be871291f0397ef4e8496bf060f57f8) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", @@ -282,8 +242,8 @@ "local" ] }, - "age_structure/E14001301/age/20_30": { - "reason": "Gate-only sign-off of the local cell age_structure/E14001301/age/20_30 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "hmrc_income_by_area/E14001535/hmrc/higher_rate_taxpayers/count": { + "reason": "Gate-only sign-off of the local cell hmrc_income_by_area/E14001535/hmrc/higher_rate_taxpayers/count on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", "approved_on": "2026-11-04", @@ -292,62 +252,62 @@ "local" ] }, - "council_tax/E07000178/council_tax/band_e": { - "reason": "Gate-only sign-off of the local cell council_tax/E07000178/council_tax/band_e on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "age_structure/E14001080/age/20_30": { + "reason": "Gate-only sign-off of the local cell age_structure/E14001080/age/20_30 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] }, - "council_tax/S12000013/council_tax/band_b": { - "reason": "Gate-only sign-off of the local cell council_tax/S12000013/council_tax/band_b on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "age_structure/E14001081/age/20_30": { + "reason": "Gate-only sign-off of the local cell age_structure/E14001081/age/20_30 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] }, - "domestic_energy/S14000051/energy/electricity_kwh": { - "reason": "Gate-only sign-off of the local cell domestic_energy/S14000051/energy/electricity_kwh on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "age_structure/E14001346/age/20_30": { + "reason": "Gate-only sign-off of the local cell age_structure/E14001346/age/20_30 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] }, - "hmrc_income_by_area/E14001172/hmrc/employment_income/amount": { - "reason": "Gate-only sign-off of the local cell hmrc_income_by_area/E14001172/hmrc/employment_income/amount on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "council_tax/E09000020/council_tax/band_c": { + "reason": "Gate-only sign-off of the local cell council_tax/E09000020/council_tax/band_c on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] }, - "hmrc_income_by_area/E14001268/hmrc/self_employment_income/amount": { - "reason": "Gate-only sign-off of the local cell hmrc_income_by_area/E14001268/hmrc/self_employment_income/amount on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "hmrc_income_by_area/E14001576/hmrc/self_employment_income/count": { + "reason": "Gate-only sign-off of the local cell hmrc_income_by_area/E14001576/hmrc/self_employment_income/count on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] }, - "hmrc_income_by_area/E14001535/hmrc/higher_rate_taxpayers/count": { - "reason": "Gate-only sign-off of the local cell hmrc_income_by_area/E14001535/hmrc/higher_rate_taxpayers/count on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "uc_households/E14001098/uc_hh_3plus_children": { + "reason": "Gate-only sign-off of the local cell uc_households/E14001098/uc_hh_3plus_children on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] diff --git a/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json index b32b6f3c78..4b8f0b3b9a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json @@ -42,16 +42,6 @@ "local" ] }, - "hmrc/state_pension_count_income_band_500_000_to_1_000_000@2025": { - "reason": "Gate-only sign-off of the national target row hmrc/state_pension_count_income_band_500_000_to_1_000_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261026T091056Z-824870f6 (full gate report sha256 abf245413ca0809f9f261e650c352ef310d11e19960b8e4c5ade3bc57dddf411) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", - "approved_by": "juaristi22", - "adjudication": "Gate-only sign-off of the local release's measured build, drafted from its run (microcosm#1301, microcosm#1396).", - "approved_on": "2026-10-26", - "expires_on": "2026-11-23", - "release_lines": [ - "local" - ] - }, "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_15000@2025": { "reason": "Gate-only sign-off of the national target row hmrc.spi.savings_interest_income.amount_by_total_income_band.band_15000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261027T022836Z-d5f72865 (full gate report sha256 a859f46bd70604adac1b7d6cd419c6a3aae87828a0943d318b3722022e6b2e00) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", @@ -72,18 +62,18 @@ "local" ] }, - "hmrc/private_pension_income_income_band_15_000_to_20_000@2025": { - "reason": "Gate-only sign-off of the national target row hmrc/private_pension_income_income_band_15_000_to_20_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261102T182958Z-78667c3a (full gate report sha256 7f7d66cc44ab2370a126d344cba66a923be871291f0397ef4e8496bf060f57f8) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "hmrc/dividend_income_income_band_50_000_to_70_000@2025": { + "reason": "Gate-only sign-off of the national target row hmrc/dividend_income_income_band_50_000_to_70_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1428 (sign-off 2026-11-03)", - "approved_on": "2026-11-03", - "expires_on": "2026-12-01", + "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", + "approved_on": "2026-11-04", + "expires_on": "2026-12-02", "release_lines": [ "local" ] }, - "hmrc/dividend_income_income_band_15_000_to_20_000@2025": { - "reason": "Gate-only sign-off of the national target row hmrc/dividend_income_income_band_15_000_to_20_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "hmrc/property_income_income_band_15_000_to_20_000@2025": { + "reason": "Gate-only sign-off of the national target row hmrc/property_income_income_band_15_000_to_20_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", "approved_on": "2026-11-04", @@ -92,22 +82,52 @@ "local" ] }, - "hmrc/dividend_income_income_band_50_000_to_70_000@2025": { - "reason": "Gate-only sign-off of the national target row hmrc/dividend_income_income_band_50_000_to_70_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_20000@2025": { + "reason": "Gate-only sign-off of the national target row hmrc.spi.savings_interest_income.amount_by_total_income_band.band_20000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] }, - "hmrc/property_income_income_band_15_000_to_20_000@2025": { - "reason": "Gate-only sign-off of the national target row hmrc/property_income_income_band_15_000_to_20_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261104T000247Z-3a5b4051 (full gate report sha256 365f2878c6e3c8ca333486e9255632c5362c5b01a93d3fb699eca1ee22aa0795) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "hmrc.spi_region.taxpayers_by_region_200000_plus@S92000003@2025": { + "reason": "Gate-only sign-off of the national target row hmrc.spi_region.taxpayers_by_region_200000_plus@S92000003@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", "approved_by": "juaristi22", - "adjudication": "microcosm#1301 route for the local cut built with microcosm#1491 (sign-off 2026-11-04)", - "approved_on": "2026-11-04", - "expires_on": "2026-12-02", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", + "release_lines": [ + "local" + ] + }, + "hmrc/dividend_income_income_band_70_000_to_100_000@2025": { + "reason": "Gate-only sign-off of the national target row hmrc/dividend_income_income_band_70_000_to_100_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "approved_by": "juaristi22", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", + "release_lines": [ + "local" + ] + }, + "hmrc/property_income_income_band_12_570_to_15_000@2025": { + "reason": "Gate-only sign-off of the national target row hmrc/property_income_income_band_12_570_to_15_000@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "approved_by": "juaristi22", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", + "release_lines": [ + "local" + ] + }, + "ons.population.female_19@2025": { + "reason": "Gate-only sign-off of the national target row ons.population.female_19@2025 on the local line (microcosm#1301). On dense build-1 attempt uk-local-candidate-f100-s42-20261107T102622Z-f52640d9 (full gate report sha256 4080fda251017f8ddf8ce72df29a16653d0d1db236820b6d3787e329bff71d53) it breached the target-fit release bound (max_abs_relative_error 0.25). It stays bound in the solve: this entry suppresses only the release fence on the local line, and a build in which it is back inside the bound fails the entry as stale.", + "approved_by": "juaristi22", + "adjudication": "María's approval of the gate-only sign-off for the pair built from PolicyEngine/microcosm#1535 (microcosm#1301)", + "approved_on": "2026-11-07", + "expires_on": "2026-12-05", "release_lines": [ "local" ] diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py index 42ecb0ce97..c1e167e037 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py @@ -670,15 +670,17 @@ def test_committed_target_fit_register_retains_only_live_deferrals() -> None: assert set(register) == { "hmrc.spi.employment_income.count_by_self_employment_income_band.band_1000_2000@2025", "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_15000@2025", - "hmrc/dividend_income_income_band_15_000_to_20_000@2025", + "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_20000@2025", + "hmrc.spi_region.taxpayers_by_region_200000_plus@S92000003@2025", "hmrc/dividend_income_income_band_20_000_to_30_000@2025", "hmrc/dividend_income_income_band_30_000_to_40_000@2025", "hmrc/dividend_income_income_band_40_000_to_50_000@2025", "hmrc/dividend_income_income_band_50_000_to_70_000@2025", + "hmrc/dividend_income_income_band_70_000_to_100_000@2025", "hmrc/private_pension_income_income_band_12_570_to_15_000@2025", - "hmrc/private_pension_income_income_band_15_000_to_20_000@2025", + "hmrc/property_income_income_band_12_570_to_15_000@2025", "hmrc/property_income_income_band_15_000_to_20_000@2025", - "hmrc/state_pension_count_income_band_500_000_to_1_000_000@2025", + "ons.population.female_19@2025", } assert {record.release_lines for record in register.values()} == {("local",)} @@ -706,38 +708,34 @@ def test_committed_local_target_fit_register_is_empty_and_well_formed() -> None: "age_structure/E06000023/age/20_30", "age_structure/E07000008/age/20_30", "age_structure/E07000178/age/20_30", - "age_structure/E08000003/age/20_30", + "age_structure/E14001080/age/20_30", + "age_structure/E14001081/age/20_30", "age_structure/E14001096/age/20_30", "age_structure/E14001131/age/20_30", "age_structure/E14001149/age/20_30", "age_structure/E14001182/age/20_30", "age_structure/E14001231/age/20_30", - "age_structure/E14001301/age/20_30", "age_structure/E14001319/age/20_30", "age_structure/E14001327/age/20_30", "age_structure/E14001338/age/20_30", + "age_structure/E14001346/age/20_30", "age_structure/E14001352/age/20_30", "age_structure/E14001353/age/20_30", - "age_structure/E14001410/age/20_30", "age_structure/E14001412/age/20_30", "age_structure/E14001467/age/20_30", "age_structure/W07000091/age/20_30", "council_tax/E06000014/council_tax/band_a", - "council_tax/E07000178/council_tax/band_e", "council_tax/E08000028/council_tax/band_f", "council_tax/E09000020/council_tax/band_b", + "council_tax/E09000020/council_tax/band_c", "council_tax/E09000033/council_tax/band_c", "council_tax/E09000033/council_tax/band_g", - "council_tax/S12000013/council_tax/band_a", - "council_tax/S12000013/council_tax/band_b", - "council_tax/S12000013/council_tax/band_f", "domestic_energy/S12000023/energy/electricity_kwh", - "domestic_energy/S14000051/energy/electricity_kwh", "hmrc_income_by_area/E09000020/hmrc/self_employment_income/amount", - "hmrc_income_by_area/E14001172/hmrc/employment_income/amount", - "hmrc_income_by_area/E14001268/hmrc/self_employment_income/amount", "hmrc_income_by_area/E14001310/hmrc/self_employment_income/amount", "hmrc_income_by_area/E14001535/hmrc/higher_rate_taxpayers/count", + "hmrc_income_by_area/E14001576/hmrc/self_employment_income/count", + "uc_households/E14001098/uc_hh_3plus_children", } assert {record.release_lines for record in register.values()} == {("local",)}