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
Summary
Regenerating the microcosm UK national target surface against a feed built from current main
(
33ca98a, facts_sha2564395a4e7…, 108,112 rows) deactivates 19 of the 408 active nationaltargets (408 → 389). Both causes are Chronicle-side changes between
1cab809and33ca98a, andboth 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 UCpackages with April–December 2025 monthly ones — a strict data improvement — but minted them under
new
source_conceptstrings:dwp.uc_householdsdwp.uc_households_on_universal_creditdwp.uc_benefit_units(measuretotal_units)dwp.uc_households_on_universal_creditEffect at the consumer: the 9 microcosm national targets pinning
{source_concept: dwp.uc_households, groupby_dimension: dwp.uc_number_of_children}and the caseloadtarget pinning
{source_concept: dwp.uc_benefit_units, source_measure_id: total_units}(thecalendar_year_averageseries adjudicated in microcosm#735) all defer — the country-level factscarrying
dwp.uc_number_of_childrennow exist only under the new concept.The rename is understandable — "Households on Universal Credit" is Stat-Xplore's own table title —
but
source_tableis where publisher vocabulary belongs.source_conceptis the cross-packagesemantic 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_householdson thechildren/family-type series and a surviving
dwp.uc_benefit_units/total_unitscaseload series (oran 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/da58a6fadded the council-tax nation-total packages. The SLGFS chart-2.7potential-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 samesource_name: scotgov, at the same geography level. But they are different measures: one is adwelling count, the other a £ yield decomposition (and the SLGFS table mints six rows
sharing
band_ainternally, distinguished only by dimensions).Effect at the consumer: the 9
scotgov.council_tax_stock.band_*national targets, whose selectorspin
{source_name: scotgov, source_measure_id: band_X}, now match both series and defer asmulti_fact— correctly, since a count and a £ figure must never be summed or silently chosenbetween.
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-dwellingscount again. This fully restores the 9 targets with zero consumer change.
3. Consistency note (policy, not code)
A
source_conceptrename 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