Skip to content

UC concept rename and scotgov measure-id collision silently deactivate 19 national targets #203

Description

@juaristi22

Summary

Regenerating the microcosm UK national target surface against a feed built from current main
(33ca98a, facts_sha256 4395a4e7…, 108,112 rows) deactivates 19 of the 408 active national
targets
(408 → 389). Both causes are Chronicle-side changes between 1cab809 and 33ca98a, and
both are fixable here with no consumer change. The consumer compile is fail-closed by design — a
pinned selector that stops matching defers rather than guesses — so these are silent breaking changes
for any consumer pinning the previous vocabulary.

1. The Apr–Dec UC packages renamed the family's concepts (10 targets deactivated)

9cdb364 ("Add monthly UC element caseload sources") replaced the wave-2 May-2025 national UC
packages with April–December 2025 monthly ones — a strict data improvement — but minted them under
new source_concept strings:

series old concept (May-2025 packages) new concept (Apr–Dec packages)
households by number of children dwp.uc_households dwp.uc_households_on_universal_credit
caseload / family type (the #184 series) dwp.uc_benefit_units (measure total_units) dwp.uc_households_on_universal_credit

Effect at the consumer: the 9 microcosm national targets pinning
{source_concept: dwp.uc_households, groupby_dimension: dwp.uc_number_of_children} and the caseload
target pinning {source_concept: dwp.uc_benefit_units, source_measure_id: total_units} (the
calendar_year_average series adjudicated in microcosm#735) all defer — the country-level facts
carrying dwp.uc_number_of_children now exist only under the new concept.

The rename is understandable — "Households on Universal Credit" is Stat-Xplore's own table title —
but source_table is where publisher vocabulary belongs. source_concept is the cross-package
semantic family key
, and it is now split by package vintage: the surviving May-2025 packages
(by-constituency, by-local-authority, payment-distribution, Scotland youngest-child) still mint plain
dwp.uc_households, while only the two Apr–Dec packages use the long form. Same statistical family,
two concepts, selected by vintage.

Ask: unify the family back onto its established concepts — dwp.uc_households on the
children/family-type series and a surviving dwp.uc_benefit_units/total_units caseload series (or
an explicit, documented successor) — rather than the vintage-dependent split.

2. SLGFS potential-yield rows collide with the ctaxbase band measure ids (9 targets ambiguous)

a0707a4/da58a6f added the council-tax nation-total packages. The SLGFS chart-2.7
potential-yield decomposition mints country-level rows with source_measure_id: band_a…band_h
the same measure ids as scotgov.ctaxbase2025.chargeable_dwellings.scotland, under the same
source_name: scotgov, at the same geography level. But they are different measures: one is a
dwelling count, the other a £ yield decomposition (and the SLGFS table mints six rows
sharing band_a internally, distinguished only by dimensions).

Effect at the consumer: the 9 scotgov.council_tax_stock.band_* national targets, whose selectors
pin {source_name: scotgov, source_measure_id: band_X}, now match both series and defer as
multi_fact — correctly, since a count and a £ figure must never be summed or silently chosen
between.

Ask: give the yield decomposition its own measure ids (or at minimum distinct
concepts/record-set-level measure ids), so {scotgov, band_X} uniquely names the chargeable-dwellings
count again. This fully restores the 9 targets with zero consumer change.

3. Consistency note (policy, not code)

A source_concept rename or measure-id reuse is a breaking change for every consumer pinning it.
Suggest recording the norm the founding docs imply: concepts are stable family keys; a package
refresh that must change one carries an explicit migration note (old → new, and why), so consumers
move deliberately rather than discovering the break as silent deactivations at the next feed pin.

Evidence

Consumer-side regeneration diff at the pinned feed (microcosm branch uk-local-contracts-708-759):
status transitions active → no_fact_at_or_before_period ×9 (UC children/family-type),
active → signed_deferral_compile_error ×1 (UC caseload), active → multi_fact ×9 (scotgov bands).
The UK local surface is unaffected — the per-area May-2025 UC packages kept the old concept, and
17,077 local references compile on this same feed.

Related: #200 tracks the local-surface fact gaps (PIPR 2025 emission, NI UC port); this issue is the
national-surface vocabulary breakage from the same window.

🤖 Generated with Claude Code

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