Skip to content

UK council tax target family: re-base the stock rows on the councils' taxbase returns (chronicle#262 / #264), bind Wales, Scotland and band I, compose the region controls, and track the band-support and level gaps #929

Description

@juaristi22

Why. The council tax stock family binds the VOA valuation-list stock as household counts per band. The valuation list counts every banded dwelling (exempt, empty and second homes included) while the frame carries occupied households, which the census household rows already pin per authority. Measured on the 10 September dense rebuild (https://uk-dataset-evaluation.vercel.app/55k-rebuild-2026-09-10/): England VOA all-properties 25.75m against 24.22m households on the 296 authorities (+6.3 %), per authority 0.97–1.20× (Tower Hamlets 1.20, Westminster 1.18), Wales +6.6 %; every band's mean error is negative (A −4.5 %, C −5.3 %), 24 inner-London cells miss by −25 to −57 %, the England national rows miss (band A −9.9 %, total −5.3 %), and the family supplies 33 of the release-blocking uk_local_target_fit failures. Re-expressing the same solution on a household basis, with no re-solve, removes the bias for bands A–C and halves the past-25 % count. Scotland, which binds CTAXBASE chargeable dwellings, fits within 1.1 %. The same defect is uk-data#457 on the incumbent. Plan (local): repos/uk-council-tax-family-plan.md.

What chronicle#262 / PR #264 delivered (main e1260d3, on consumer_fact.v3 since #267 / df35af7). England: MHCLG CTB lines 1, 2, 4, 7, 8, 11–17, 22, 24 by band for the England row and 296 billing authorities (mhclg.council_taxbase.*, period 2025-10); Wales: StatsWales CT1 rows by band A–I for 22 authorities and the Wales row, including empties and second homes by band (welshgov.council_tax_dwellings.*, fiscal-year periods); Scotland: the 32 council rows of CTAXBASE (…by_council_area.v1, 2025-09). No region rows: the publisher prints none and Chronicle computes no sums.

PR-CT1 (one branch, stacked on #906 and re-targeted to main when it merges)

  1. Re-pin to chronicle df35af7 (consumer_fact.v3; closes UK local target surface cannot compile since #855: sub-national geographies have no hierarchy label (needs chronicle geography.name) #920), then a baseline dense measurement on the re-pinned surface.
  2. New shared value operation linear_combination (signed, n-ary, each operand a sum over its selector with expected_member_count), stamped in ledger_value_formula; difference unchanged.
  3. Three source-named families with one measurement signature: mhclg.council_tax_stock.* (country row published; nine region cells composed from the authority rows with a list-valued geography_id, geography_predicate and cross_grain_grain: region as UK region-grain activation: fan out the 18 two-level targets over the region tier and make region a cross-grain control (#905) #906 mints; by_area cells for 296 authorities) on line 7 (+ A- for band A) − line 11 − line 15; welshgov.council_tax_stock.* A–I at W92000004 and 22 authorities on a1 − h7 − h8, the 2025-26 row; scotgov.council_tax_stock.by_area.* for 32 councils on the chargeable basis beside the existing country rows. The voa.council_tax_stock* targets retire; the parity map keeps the incumbent's voa/council_tax/<REGION>/<band> names aligned with a signed basis difference. Band H cells stay under council_tax_band_h_spine_support_absent; the three UK region-grain activation: fan out the 18 two-level targets over the region tier and make region a cross-grain control (#905) #906 band-H region exclusions move to the mhclg.* names.
  4. Band I: COUNCIL_TAX_BANDS and the four other A–H literals extend to I (the engine enum and the spine already carry it); incumbent-name maps skip I.
  5. Retire council_tax_wales_country_control_absent (stale on two counts: the Wales fact exists in every pin, and the precedence string predates UK region-grain activation: fan out the 18 two-level targets over the region tier and make region a cross-grain control (#905) #906) and council_tax_voa_scotland_absent; re-adjudicate voa_dwellings_vs_household_frame onto the new basis with the measured residuals (England and Wales ≈ 0, Scotland +1.2 %); drop "country wins" from census_disclosure_control_noise.
  6. frozen_vs_recomputed (uk_runtime/size_evaluation.py): stop keying on contract_target_id (it summed the Wales rollup into the England-pinned row, the report's spurious "+3 to +12 %") and refuse duplicate keys; erratum in the 55k report and the 355 receipts.
  7. Re-measure on the same dense recipe before review: family within-10 % above 97 %, bias by band ≈ 0, national and region rows within 2 %, gate failures down to the four band-G micro-cells and any inner-London residue, census and tenure unchanged.

Later, tracked here

  • CT-B, band support: a per-clone, rank-preserving redraw of council_tax_band from the assigned authority's band distribution (new geography-spine method; the assign_brma_by_cell + stable_identity_uniforms pattern), with council_tax re-imputed per clone. The only route to band H, the micro-cells and inner London; until then A14 stands.
  • CT-C, level: obr.council_tax is −11 % net; England gross averages £1,522 per household against a requirement of about £1,815. Rules-based liability from band × the authority's Band D level (MHCLG Table 10, CTAS 2026, WG levels, all in the feed) × statutory ratios × single-adult discount; engine-side CTR (policyengine-uk#1669); OBR nation rows re-pinned to K02000001 as report-only levels until then; a signed asymmetry on obr.council_tax for receipts on non-household dwellings.
  • No action: Northern Ireland (domestic rates; 88 cells), City of London band A (VOA suppression).

Refs: #736 (interim lines), #905 / #906 (region tier), #920 (v3 re-pin), #796 (band H), chronicle#262 / #264 / #266 / #267, uk-data#457, uk-data#448.

Activity

  1. juaristi22 commented on Sep 16, 2026

    @juaristi22
    CollaboratorAuthor

    Closing on the merge of #934 (d69a543, 2026-09-16), which delivered the PR-CT1 section: the re-pin to chronicle df35af7 (consumer_fact.v3, closes #920), linear_combination, the three source-named families on the taxbase basis with the nine English region controls composed from the 296 authority rows, band I, the retired masks (recorded with dates under the census family), the re-adjudicated fence, and the frozen_vs_recomputed fix with its errata. Two recorded deviations from the plan: no separate baseline run (ruled 2026-09-15; the measurement is on the pre-rebase family tree, kept as backup-929-pre-retarget), and Shetland's band-H cell signed deferred for support.

    Measured (dense K=15, seed 42, 1,500 epochs, spine-r): council-tax authority cells within 10 % 92.2 % → 99.6 %, past 25 % 33 → 5, England's bias by band from −4.5 to −5.3 % to within ±0.2 %, the four band-G micro-cells and the inner-London A–D misses resolved, Wales 99.5 % and Scotland 98.0 % within 10 %, the other local families unchanged; uk_local_target_fit failing targets 53 → 24 (council tax 33 → 5). Receipts: experiments/929-council-tax-taxbase-receipts.md.

    The two follow-ups graduate to the workstream deferral issues rather than staying here:

    No action, as before: Northern Ireland (domestic rates) and the City of London's band A.

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