diff --git a/changelog.d/905-uk-region-grain-activation.added.md b/changelog.d/905-uk-region-grain-activation.added.md new file mode 100644 index 000000000..67160e299 --- /dev/null +++ b/changelog.d/905-uk-region-grain-activation.added.md @@ -0,0 +1 @@ +Activate UK region grain: the 18 two-level (country + region) contract targets — ONS population by age band and VOA council-tax stock by band — fan out over the twelve-area region tier (nine English regions, Wales, Scotland, Northern Ireland), one reference per area scoped on the spine by a household-region predicate, replacing the 18 single country rows; the cross-grain rule gains `region` between country and constituency with every tier code as its own leg, resolved for English areas through the crosswalk's ladder-derived region membership (microcosm#905). diff --git a/docs/evidence/uk-region-tier-905/calibration-comparison.json b/docs/evidence/uk-region-tier-905/calibration-comparison.json new file mode 100644 index 000000000..6e7a091e9 --- /dev/null +++ b/docs/evidence/uk-region-tier-905/calibration-comparison.json @@ -0,0 +1,1310 @@ +{ + "issue": "microcosm#905", + "pr": "microcosm#906", + "arm": { + "tool": "tools/calibrate_uk_national_dataset.py", + "input_h5": "spine-q.h5 (sha256 cf1f9dda198a06819241ed3358f68dd99c675eb7ca45fa766a3ed4b07eb0337f, the 2026-09-10 spine-q national pool)", + "chronicle_feed": "c6f9361 (facts 45bda3ae730d4ae3\u2026)", + "doctrine_overrides": { + "epochs": 1500, + "target_weight_rule": "family_equal", + "learning_rate": 0.02 + }, + "measure_exclusions": "packaged register at the branch point a256c880 (50 entries: the 47 on main after #903 retired three ons.household_composition.* entries, plus those three, still present at a256c880) \u2014 the three band-H region-cell exclusions signed on 2026-09-14 did not exist yet, which is why the candidate arm carried 545 targets (595 - 50) and the terminal gate blocked on the band-H cells; under the HEAD register the baseline arm would carry 377 (424 - 47) and the candidate 542 (595 - 53).", + "baseline": "PR #904 head a256c880 register (424 references, 374 after exclusions), run from the same code line with the same overrides", + "candidate": "this branch (595 references, 545 after exclusions)", + "run_date": "2026-09-11" + }, + "summary": { + "new": { + "final_loss": 0.012833430074165722, + "fraction_within_10pct": 0.9651376146788991, + "effective_sample_size": 10469.196661388754, + "n_nonzero": 52846, + "n_targets": 545, + "epochs": 1500, + "lr": 0.02, + "rule": "family_equal" + }, + "base": { + "final_loss": 0.011201580832300414, + "fraction_within_10pct": 0.9572192513368984, + "effective_sample_size": 10350.410607719752, + "n_nonzero": 52846, + "n_targets": 374, + "epochs": 1500, + "lr": 0.02, + "rule": "family_equal" + } + }, + "region_cells": { + "ons_population": { + "count": 108, + "bands": { + "within_5pct": 108 + }, + "median_abs_relative_error": 0.0008058624515383759, + "max_abs_relative_error": 0.0053138121847288 + }, + "council_tax_stock": { + "count": 81, + "bands": { + "within_5pct": 78, + "outside_25pct": 3 + }, + "median_abs_relative_error": 0.0008923704864915138, + "max_abs_relative_error": 1.0 + } + }, + "region_cells_outside_bound": [ + { + "name": "voa.council_tax_stock.band_h@E12000001@2025", + "target": 1570.0, + "final_estimate": 0.0, + "relative_error": -1.0 + }, + { + "name": "voa.council_tax_stock.band_h@E12000002@2025", + "target": 7350.0, + "final_estimate": 0.0, + "relative_error": -1.0 + }, + { + "name": "voa.council_tax_stock.band_h@E12000003@2025", + "target": 3770.0, + "final_estimate": 0.0, + "relative_error": -1.0 + } + ], + "common_rows": { + "count": 356, + "abs_relative_error_bands": { + "base": { + "\u22645%": 332, + "\u226425%": 16, + "\u226410%": 8 + }, + "new": { + "\u22645%": 329, + "\u226425%": 15, + "\u226410%": 11, + ">25%": 1 + } + }, + "largest_movers": [ + { + "name": "obr.fuel_duties_cars@2025", + "baseline_relative_error": -0.14874191635126816, + "candidate_relative_error": -0.2387073236943142 + }, + { + "name": "dwp.uc.households_children_2@2025", + "baseline_relative_error": -0.07423798754008737, + "candidate_relative_error": -0.11569793290357122 + }, + { + "name": "hmrc/self_employment_income_income_band_50_000_to_70_000@2025", + "baseline_relative_error": 0.10902101291923244, + "candidate_relative_error": 0.07925852300729519 + }, + { + "name": "hmrc/state_pension_income_band_50_000_to_70_000@2025", + "baseline_relative_error": 0.04892218279337719, + "candidate_relative_error": 0.07014864401180938 + }, + { + "name": "hmrc/employment_income_income_band_50_000_to_70_000@2025", + "baseline_relative_error": 0.005328092560829776, + "candidate_relative_error": 0.02569959647002753 + }, + { + "name": "dwp.uc.households_children_1@2025", + "baseline_relative_error": -0.1808694470241334, + "candidate_relative_error": -0.1624071771211329 + }, + { + "name": "hmrc/employment_income_count_income_band_50_000_to_70_000@2025", + "baseline_relative_error": 0.006782008244633626, + "candidate_relative_error": 0.02216570303239588 + }, + { + "name": "hmrc/self_employment_income_income_band_20_000_to_30_000@2025", + "baseline_relative_error": 0.23605705188216192, + "candidate_relative_error": 0.25002720010212287 + }, + { + "name": "hmrc/state_pension_count_income_band_50_000_to_70_000@2025", + "baseline_relative_error": -0.018344147739413747, + "candidate_relative_error": -0.0047736985374449556 + }, + { + "name": "obr.child_benefit@2025", + "baseline_relative_error": 0.17894631373311598, + "candidate_relative_error": 0.1916386692045426 + }, + { + "name": "hmrc/state_pension_income_band_30_000_to_40_000@2025", + "baseline_relative_error": 0.13063666449127925, + "candidate_relative_error": 0.14228621539638722 + }, + { + "name": "hmrc/private_pension_income_income_band_300_000_to_500_000@2025", + "baseline_relative_error": -0.1018267139192942, + "candidate_relative_error": -0.11249834732979813 + } + ] + }, + "terminal_gate_messages": { + "candidate": [ + "microcosm_uk_2024: voa.council_tax_stock.band_h@E12000001@2025 relative error -100.0% exceeds 25%.", + "microcosm_uk_2024: voa.council_tax_stock.band_h@E12000002@2025 relative error -100.0% exceeds 25%.", + "microcosm_uk_2024: voa.council_tax_stock.band_h@E12000003@2025 relative error -100.0% exceeds 25%.", + "microcosm_uk_2024: hmrc/self_employment_income_income_band_20_000_to_30_000@2025 relative error +25.0% exceeds 25%.", + "Stale reviewed target-fit exclusions are back inside the bound; remove them: ['obr.fuel_duties_cars@2025']." + ], + "baseline": [] + }, + "reading": [ + "Every ONS region cell and 78 of 81 VOA cells fit within 5%; the tier binds as published.", + "The three band-H cells at -100% (North East, North West, Yorkshire and the Humber) have no band-H household on the spine (spine-m carried 170 band-H households from 49 raw FRS households, none in those regions; microcosm#762 A14), the class already signed for the local band-H family; they need a reviewed measure exclusion or a spine vintage with broader band-H support (microcosm#796).", + "Common-row fit is unchanged within run noise (332->329 within 5%, 16->15 within 25%); hmrc/self_employment_income_income_band_20_000_to_30_000 sits at the 25% bound (+23.6% -> +25.0%) and obr.fuel_duties_cars moves -14.9% -> -23.9%, inside the 25% bound (#904 retired its reviewed target-fit exclusion; the gate message about a stale exclusion in this run reflects the a256c880 register); both rows belong to the #890/PR-S lane.", + "The baseline run refused to stage for want of MICROCOSM_UK_TERMINAL_GATE_SIGNING_KEY (an unsigned full-scale run under the #904 round-2 runner); its solve and diagnostics completed.", + "Register vintage: see arm.measure_exclusions \u2014 the runs predate the band-H signing and the #903 retirements, so their exclusion counts are not reproducible from HEAD." + ], + "region_cell_rows": [ + { + "name": "ons.population.age_0_9_by_region@E12000001@2025", + "target": 285165.0, + "final_estimate": 285503.6717033386, + "relative_error": 0.0011876341884124034 + }, + { + "name": "ons.population.age_0_9_by_region@E12000002@2025", + "target": 865892.0, + "final_estimate": 866269.0863260374, + "relative_error": 0.0004354888670150748 + }, + { + "name": "ons.population.age_0_9_by_region@E12000003@2025", + "target": 626938.0, + "final_estimate": 627769.9211111069, + "relative_error": 0.0013269591428608132 + }, + { + "name": "ons.population.age_0_9_by_region@E12000004@2025", + "target": 543004.0, + "final_estimate": 543452.6816167831, + "relative_error": 0.0008262952331532403 + }, + { + "name": "ons.population.age_0_9_by_region@E12000005@2025", + "target": 718837.0, + "final_estimate": 719058.727563858, + "relative_error": 0.0003084531873818852 + }, + { + "name": "ons.population.age_0_9_by_region@E12000006@2025", + "target": 744698.0, + "final_estimate": 745749.9893870722, + "relative_error": 0.001412638931583215 + }, + { + "name": "ons.population.age_0_9_by_region@E12000007@2025", + "target": 1054493.0, + "final_estimate": 1054461.0709514618, + "relative_error": -3.0279052149429163e-05 + }, + { + "name": "ons.population.age_0_9_by_region@E12000008@2025", + "target": 1059434.0, + "final_estimate": 1059683.762228012, + "relative_error": 0.0002357506253453117 + }, + { + "name": "ons.population.age_0_9_by_region@E12000009@2025", + "target": 575506.0, + "final_estimate": 575860.0710201263, + "relative_error": 0.0006152342810089604 + }, + { + "name": "ons.population.age_0_9_by_region@W92000004@2025", + "target": 321552.0, + "final_estimate": 321505.325094223, + "relative_error": -0.0001451550784227047 + }, + { + "name": "ons.population.age_0_9_by_region@S92000003@2025", + "target": 527989.0, + "final_estimate": 528191.4859447479, + "relative_error": 0.00038350409714582085 + }, + { + "name": "ons.population.age_0_9_by_region@N92000002@2025", + "target": 229505.0, + "final_estimate": 230063.32855772972, + "relative_error": 0.0024327511719993947 + }, + { + "name": "ons.population.age_10_19_by_region@E12000001@2025", + "target": 326306.0, + "final_estimate": 326587.9696941376, + "relative_error": 0.0008641265993808672 + }, + { + "name": "ons.population.age_10_19_by_region@E12000002@2025", + "target": 952864.0, + "final_estimate": 953203.7975921631, + "relative_error": 0.0003566066009032621 + }, + { + "name": "ons.population.age_10_19_by_region@E12000003@2025", + "target": 696780.0, + "final_estimate": 696736.0747246742, + "relative_error": -6.304037906624063e-05 + }, + { + "name": "ons.population.age_10_19_by_region@E12000004@2025", + "target": 615630.0, + "final_estimate": 616242.5096559525, + "relative_error": 0.0009949314620022638 + }, + { + "name": "ons.population.age_10_19_by_region@E12000005@2025", + "target": 785062.0, + "final_estimate": 784612.4041187649, + "relative_error": -0.0005726883752303478 + }, + { + "name": "ons.population.age_10_19_by_region@E12000006@2025", + "target": 785091.0, + "final_estimate": 785450.1543215238, + "relative_error": 0.0004574683973244489 + }, + { + "name": "ons.population.age_10_19_by_region@E12000007@2025", + "target": 1068691.0, + "final_estimate": 1069357.7120399475, + "relative_error": 0.0006238585708567862 + }, + { + "name": "ons.population.age_10_19_by_region@E12000008@2025", + "target": 1183235.0, + "final_estimate": 1183354.6526260376, + "relative_error": 0.00010112329844671401 + }, + { + "name": "ons.population.age_10_19_by_region@E12000009@2025", + "target": 677228.0, + "final_estimate": 676662.3395547867, + "relative_error": -0.0008352585026214478 + }, + { + "name": "ons.population.age_10_19_by_region@W92000004@2025", + "target": 374851.0, + "final_estimate": 374520.50541210175, + "relative_error": -0.0008816692176311505 + }, + { + "name": "ons.population.age_10_19_by_region@S92000003@2025", + "target": 612935.0, + "final_estimate": 612301.4511246243, + "relative_error": -0.0010336314215628913 + }, + { + "name": "ons.population.age_10_19_by_region@N92000002@2025", + "target": 252764.0, + "final_estimate": 253121.90686798096, + "relative_error": 0.0014159724801829257 + }, + { + "name": "ons.population.age_20_29_by_region@E12000001@2025", + "target": 343015.0, + "final_estimate": 343298.21336364746, + "relative_error": 0.0008256588302186812 + }, + { + "name": "ons.population.age_20_29_by_region@E12000002@2025", + "target": 986590.0, + "final_estimate": 986167.8848876953, + "relative_error": -0.00042785261588368774 + }, + { + "name": "ons.population.age_20_29_by_region@E12000003@2025", + "target": 717479.0, + "final_estimate": 717730.1658706665, + "relative_error": 0.0003500672084709154 + }, + { + "name": "ons.population.age_20_29_by_region@E12000004@2025", + "target": 612108.0, + "final_estimate": 612938.680683136, + "relative_error": 0.0013570818926333039 + }, + { + "name": "ons.population.age_20_29_by_region@E12000005@2025", + "target": 766058.0, + "final_estimate": 766312.226764679, + "relative_error": 0.00033186359868176443 + }, + { + "name": "ons.population.age_20_29_by_region@E12000006@2025", + "target": 727218.0, + "final_estimate": 727559.2016601562, + "relative_error": 0.0004691875890809221 + }, + { + "name": "ons.population.age_20_29_by_region@E12000007@2025", + "target": 1508607.0, + "final_estimate": 1510816.1218609917, + "relative_error": 0.001464345492889598 + }, + { + "name": "ons.population.age_20_29_by_region@E12000008@2025", + "target": 1066121.0, + "final_estimate": 1068449.0147972107, + "relative_error": 0.0021836309360857664 + }, + { + "name": "ons.population.age_20_29_by_region@E12000009@2025", + "target": 684393.0, + "final_estimate": 684963.9525032043, + "relative_error": 0.0008342465560056074 + }, + { + "name": "ons.population.age_20_29_by_region@W92000004@2025", + "target": 380557.0, + "final_estimate": 380159.77042007446, + "relative_error": -0.0010438109926385196 + }, + { + "name": "ons.population.age_20_29_by_region@S92000003@2025", + "target": 703554.0, + "final_estimate": 703981.9755580189, + "relative_error": 0.0006083052019019065 + }, + { + "name": "ons.population.age_20_29_by_region@N92000002@2025", + "target": 219525.0, + "final_estimate": 219936.16009140015, + "relative_error": 0.0018729533829866599 + }, + { + "name": "ons.population.age_30_39_by_region@E12000001@2025", + "target": 363357.0, + "final_estimate": 364567.0047531128, + "relative_error": 0.003330071398412011 + }, + { + "name": "ons.population.age_30_39_by_region@E12000002@2025", + "target": 1064968.0, + "final_estimate": 1066027.3056228848, + "relative_error": 0.0009946830542183153 + }, + { + "name": "ons.population.age_30_39_by_region@E12000003@2025", + "target": 770809.0, + "final_estimate": 771402.2469630241, + "relative_error": 0.0007696419774861729 + }, + { + "name": "ons.population.age_30_39_by_region@E12000004@2025", + "target": 676709.0, + "final_estimate": 677005.1930160522, + "relative_error": 0.0004376962860731069 + }, + { + "name": "ons.population.age_30_39_by_region@E12000005@2025", + "target": 839114.0, + "final_estimate": 840639.6241629766, + "relative_error": 0.0018181369432241983 + }, + { + "name": "ons.population.age_30_39_by_region@E12000006@2025", + "target": 895639.0, + "final_estimate": 896961.1368701642, + "relative_error": 0.0014761939466282636 + }, + { + "name": "ons.population.age_30_39_by_region@E12000007@2025", + "target": 1537372.0, + "final_estimate": 1538795.013685714, + "relative_error": 0.0009256144158433923 + }, + { + "name": "ons.population.age_30_39_by_region@E12000008@2025", + "target": 1284552.0, + "final_estimate": 1284663.5725822449, + "relative_error": 8.685719398270606e-05 + }, + { + "name": "ons.population.age_30_39_by_region@E12000009@2025", + "target": 742082.0, + "final_estimate": 742972.1592845917, + "relative_error": 0.0011995430216494604 + }, + { + "name": "ons.population.age_30_39_by_region@W92000004@2025", + "target": 410248.0, + "final_estimate": 410132.7368373871, + "relative_error": -0.00028095971854321056 + }, + { + "name": "ons.population.age_30_39_by_region@S92000003@2025", + "target": 733480.0, + "final_estimate": 733564.972164154, + "relative_error": 0.00011584796334467571 + }, + { + "name": "ons.population.age_30_39_by_region@N92000002@2025", + "target": 254067.0, + "final_estimate": 254869.61031079292, + "relative_error": 0.0031590498206887276 + }, + { + "name": "ons.population.age_40_49_by_region@E12000001@2025", + "target": 320860.0, + "final_estimate": 320975.78416252136, + "relative_error": 0.0003608557081635676 + }, + { + "name": "ons.population.age_40_49_by_region@E12000002@2025", + "target": 930967.0, + "final_estimate": 931396.6014080048, + "relative_error": 0.00046145718162379627 + }, + { + "name": "ons.population.age_40_49_by_region@E12000003@2025", + "target": 674349.0, + "final_estimate": 674647.2358136177, + "relative_error": 0.0004422573676504396 + }, + { + "name": "ons.population.age_40_49_by_region@E12000004@2025", + "target": 610611.0, + "final_estimate": 611337.200507164, + "relative_error": 0.001189301383637048 + }, + { + "name": "ons.population.age_40_49_by_region@E12000005@2025", + "target": 746341.0, + "final_estimate": 746218.2220117175, + "relative_error": -0.00016450655703290851 + }, + { + "name": "ons.population.age_40_49_by_region@E12000006@2025", + "target": 838578.0, + "final_estimate": 839668.7938147325, + "relative_error": 0.0013007660763011434 + }, + { + "name": "ons.population.age_40_49_by_region@E12000007@2025", + "target": 1268973.0, + "final_estimate": 1270481.8430976868, + "relative_error": 0.0011890269514692334 + }, + { + "name": "ons.population.age_40_49_by_region@E12000008@2025", + "target": 1255951.0, + "final_estimate": 1256642.5409812927, + "relative_error": 0.0005506114341186278 + }, + { + "name": "ons.population.age_40_49_by_region@E12000009@2025", + "target": 688417.0, + "final_estimate": 688900.0536308289, + "relative_error": 0.0007016875394257512 + }, + { + "name": "ons.population.age_40_49_by_region@W92000004@2025", + "target": 365951.0, + "final_estimate": 365862.95921230316, + "relative_error": -0.00024058080917073154 + }, + { + "name": "ons.population.age_40_49_by_region@S92000003@2025", + "target": 675368.0, + "final_estimate": 675214.5873394012, + "relative_error": -0.00022715417461110815 + }, + { + "name": "ons.population.age_40_49_by_region@N92000002@2025", + "target": 246140.0, + "final_estimate": 246747.6231725216, + "relative_error": 0.0024686079975688273 + }, + { + "name": "ons.population.age_50_59_by_region@E12000001@2025", + "target": 360074.0, + "final_estimate": 359825.19343185425, + "relative_error": -0.0006909873196780438 + }, + { + "name": "ons.population.age_50_59_by_region@E12000002@2025", + "target": 995810.0, + "final_estimate": 994948.3113002777, + "relative_error": -0.0008653143669196835 + }, + { + "name": "ons.population.age_50_59_by_region@E12000003@2025", + "target": 736903.0, + "final_estimate": 735827.5324363708, + "relative_error": -0.001459442509569306 + }, + { + "name": "ons.population.age_50_59_by_region@E12000004@2025", + "target": 676307.0, + "final_estimate": 675744.0666751862, + "relative_error": -0.0008323635934772859 + }, + { + "name": "ons.population.age_50_59_by_region@E12000005@2025", + "target": 794143.0, + "final_estimate": 793910.0475769043, + "relative_error": -0.000293338130658714 + }, + { + "name": "ons.population.age_50_59_by_region@E12000006@2025", + "target": 866946.0, + "final_estimate": 866431.3785972595, + "relative_error": -0.0005936026035537144 + }, + { + "name": "ons.population.age_50_59_by_region@E12000007@2025", + "target": 1087518.0, + "final_estimate": 1087629.167104721, + "relative_error": 0.00010222093309818259 + }, + { + "name": "ons.population.age_50_59_by_region@E12000008@2025", + "target": 1287719.0, + "final_estimate": 1287543.7127552032, + "relative_error": -0.00013612227884868744 + }, + { + "name": "ons.population.age_50_59_by_region@E12000009@2025", + "target": 784718.0, + "final_estimate": 784617.0222520828, + "relative_error": -0.00012868030033359154 + }, + { + "name": "ons.population.age_50_59_by_region@W92000004@2025", + "target": 424694.0, + "final_estimate": 424227.1545767784, + "relative_error": -0.0010992512802667053 + }, + { + "name": "ons.population.age_50_59_by_region@S92000003@2025", + "target": 766715.0, + "final_estimate": 767274.7197431207, + "relative_error": 0.0007300232069552792 + }, + { + "name": "ons.population.age_50_59_by_region@N92000002@2025", + "target": 255269.0, + "final_estimate": 255798.89809417725, + "relative_error": 0.0020758419321470533 + }, + { + "name": "ons.population.age_60_69_by_region@E12000001@2025", + "target": 349719.0, + "final_estimate": 348729.34380340576, + "relative_error": -0.0028298611073297084 + }, + { + "name": "ons.population.age_60_69_by_region@E12000002@2025", + "target": 884043.0, + "final_estimate": 882292.1419252501, + "relative_error": -0.0019805123447048803 + }, + { + "name": "ons.population.age_60_69_by_region@E12000003@2025", + "target": 652931.0, + "final_estimate": 651494.4082927704, + "relative_error": -0.0022002197892727017 + }, + { + "name": "ons.population.age_60_69_by_region@E12000004@2025", + "target": 591429.0, + "final_estimate": 591306.7802658081, + "relative_error": -0.0002066515747315308 + }, + { + "name": "ons.population.age_60_69_by_region@E12000005@2025", + "target": 677922.0, + "final_estimate": 677424.5865535736, + "relative_error": -0.0007337325627821366 + }, + { + "name": "ons.population.age_60_69_by_region@E12000006@2025", + "target": 744651.0, + "final_estimate": 744065.6551127802, + "relative_error": -0.0007860660728580706 + }, + { + "name": "ons.population.age_60_69_by_region@E12000007@2025", + "target": 787666.0, + "final_estimate": 787745.8823032379, + "relative_error": 0.0001014164674340584 + }, + { + "name": "ons.population.age_60_69_by_region@E12000008@2025", + "target": 1089421.0, + "final_estimate": 1087074.4476203918, + "relative_error": -0.0021539445077781265 + }, + { + "name": "ons.population.age_60_69_by_region@E12000009@2025", + "target": 736639.0, + "final_estimate": 735123.1935815811, + "relative_error": -0.002057733052986448 + }, + { + "name": "ons.population.age_60_69_by_region@W92000004@2025", + "target": 401775.0, + "final_estimate": 401460.9463453293, + "relative_error": -0.0007816654960381192 + }, + { + "name": "ons.population.age_60_69_by_region@S92000003@2025", + "target": 721727.0, + "final_estimate": 722740.1344937405, + "relative_error": 0.0014037641570018972 + }, + { + "name": "ons.population.age_60_69_by_region@N92000002@2025", + "target": 223111.0, + "final_estimate": 224101.41501760483, + "relative_error": 0.004439113345396811 + }, + { + "name": "ons.population.age_70_79_by_region@E12000001@2025", + "target": 265573.0, + "final_estimate": 265280.5176811218, + "relative_error": -0.001101325507028854 + }, + { + "name": "ons.population.age_70_79_by_region@E12000002@2025", + "target": 669277.0, + "final_estimate": 668989.6631317139, + "relative_error": -0.0004293242831983361 + }, + { + "name": "ons.population.age_70_79_by_region@E12000003@2025", + "target": 504131.0, + "final_estimate": 503835.57861709595, + "relative_error": -0.0005860012236979133 + }, + { + "name": "ons.population.age_70_79_by_region@E12000004@2025", + "target": 466530.0, + "final_estimate": 466326.4743976593, + "relative_error": -0.000436254050844958 + }, + { + "name": "ons.population.age_70_79_by_region@E12000005@2025", + "target": 528207.0, + "final_estimate": 528311.2268753052, + "relative_error": 0.0001973220258443674 + }, + { + "name": "ons.population.age_70_79_by_region@E12000006@2025", + "target": 599882.0, + "final_estimate": 599961.2317267198, + "relative_error": 0.00013207885337410523 + }, + { + "name": "ons.population.age_70_79_by_region@E12000007@2025", + "target": 485057.0, + "final_estimate": 485003.3707332611, + "relative_error": -0.00011056281372888465 + }, + { + "name": "ons.population.age_70_79_by_region@E12000008@2025", + "target": 865392.0, + "final_estimate": 864743.6456069946, + "relative_error": -0.0007492031276061843 + }, + { + "name": "ons.population.age_70_79_by_region@E12000009@2025", + "target": 618254.0, + "final_estimate": 618299.5177974701, + "relative_error": 7.362313461796086e-05 + }, + { + "name": "ons.population.age_70_79_by_region@W92000004@2025", + "target": 321668.0, + "final_estimate": 322086.0869140625, + "relative_error": 0.001299746676892013 + }, + { + "name": "ons.population.age_70_79_by_region@S92000003@2025", + "target": 519252.0, + "final_estimate": 518412.3359107971, + "relative_error": -0.0016170647184852074 + }, + { + "name": "ons.population.age_70_79_by_region@N92000002@2025", + "target": 155382.0, + "final_estimate": 156030.98895168304, + "relative_error": 0.004176731871664958 + }, + { + "name": "ons.population.age_80_89_by_region@E12000001@2025", + "target": 122118.0, + "final_estimate": 122116.24346160889, + "relative_error": -1.4383943326235946e-05 + }, + { + "name": "ons.population.age_80_89_by_region@E12000002@2025", + "target": 324141.0, + "final_estimate": 325005.86228695966, + "relative_error": 0.0026681668994655364 + }, + { + "name": "ons.population.age_80_89_by_region@E12000003@2025", + "target": 243274.0, + "final_estimate": 243290.26535224915, + "relative_error": 6.686021625469844e-05 + }, + { + "name": "ons.population.age_80_89_by_region@E12000004@2025", + "target": 225626.0, + "final_estimate": 225324.1164894104, + "relative_error": -0.0013379819284550522 + }, + { + "name": "ons.population.age_80_89_by_region@E12000005@2025", + "target": 275030.0, + "final_estimate": 275270.5272216797, + "relative_error": 0.0008745490371220867 + }, + { + "name": "ons.population.age_80_89_by_region@E12000006@2025", + "target": 305691.0, + "final_estimate": 305619.07409477234, + "relative_error": -0.00023528957420290795 + }, + { + "name": "ons.population.age_80_89_by_region@E12000007@2025", + "target": 237061.0, + "final_estimate": 236716.1509409168, + "relative_error": -0.0014546849084548195 + }, + { + "name": "ons.population.age_80_89_by_region@E12000008@2025", + "target": 447958.0, + "final_estimate": 447086.0356311798, + "relative_error": -0.001946531524875525 + }, + { + "name": "ons.population.age_80_89_by_region@E12000009@2025", + "target": 313605.0, + "final_estimate": 312918.1152534485, + "relative_error": -0.002190286336479054 + }, + { + "name": "ons.population.age_80_89_by_region@W92000004@2025", + "target": 154319.0, + "final_estimate": 154446.5887966156, + "relative_error": 0.0008267860510734296 + }, + { + "name": "ons.population.age_80_89_by_region@S92000003@2025", + "target": 238904.0, + "final_estimate": 239228.98740386963, + "relative_error": 0.001360326339741607 + }, + { + "name": "ons.population.age_80_89_by_region@N92000002@2025", + "target": 77441.0, + "final_estimate": 77852.50692939758, + "relative_error": 0.0053138121847288 + }, + { + "name": "voa.council_tax_stock.band_a@E12000001@2025", + "target": 667540.0, + "final_estimate": 668483.2188777924, + "relative_error": 0.0014129773164040483 + }, + { + "name": "voa.council_tax_stock.band_a@E12000002@2025", + "target": 1386260.0, + "final_estimate": 1386668.9609966278, + "relative_error": 0.00029501031309264324 + }, + { + "name": "voa.council_tax_stock.band_a@E12000003@2025", + "target": 1070830.0, + "final_estimate": 1071106.2345056534, + "relative_error": 0.00025796298726537485 + }, + { + "name": "voa.council_tax_stock.band_a@E12000004@2025", + "target": 804340.0, + "final_estimate": 804955.8544216156, + "relative_error": 0.0007656642982017562 + }, + { + "name": "voa.council_tax_stock.band_a@E12000005@2025", + "target": 786010.0, + "final_estimate": 785828.5106182098, + "relative_error": -0.00023089958370779142 + }, + { + "name": "voa.council_tax_stock.band_a@E12000006@2025", + "target": 403180.0, + "final_estimate": 403643.102900285, + "relative_error": 0.0011486256765836172 + }, + { + "name": "voa.council_tax_stock.band_a@E12000007@2025", + "target": 144550.0, + "final_estimate": 144528.54875183105, + "relative_error": -0.00014840019487336777 + }, + { + "name": "voa.council_tax_stock.band_a@E12000008@2025", + "target": 367610.0, + "final_estimate": 367448.1831378937, + "relative_error": -0.00044018623570175793 + }, + { + "name": "voa.council_tax_stock.band_a@E12000009@2025", + "target": 473020.0, + "final_estimate": 472912.6387939453, + "relative_error": -0.0002269696969571847 + }, + { + "name": "voa.council_tax_stock.band_b@E12000001@2025", + "target": 206790.0, + "final_estimate": 207272.93676757812, + "relative_error": 0.0023353971061372647 + }, + { + "name": "voa.council_tax_stock.band_b@E12000002@2025", + "target": 705450.0, + "final_estimate": 706093.857217227, + "relative_error": 0.0009126900804124918 + }, + { + "name": "voa.council_tax_stock.band_b@E12000003@2025", + "target": 514190.0, + "final_estimate": 513757.2696018219, + "relative_error": -0.0008415768454814379 + }, + { + "name": "voa.council_tax_stock.band_b@E12000004@2025", + "target": 505610.0, + "final_estimate": 505420.2009305954, + "relative_error": -0.00037538630447301685 + }, + { + "name": "voa.council_tax_stock.band_b@E12000005@2025", + "target": 654140.0, + "final_estimate": 654350.6381837451, + "relative_error": 0.00032200780222137453 + }, + { + "name": "voa.council_tax_stock.band_b@E12000006@2025", + "target": 598950.0, + "final_estimate": 598901.5974283218, + "relative_error": -8.081237445222743e-05 + }, + { + "name": "voa.council_tax_stock.band_b@E12000007@2025", + "target": 499130.0, + "final_estimate": 499755.10285949707, + "relative_error": 0.0012523848686656189 + }, + { + "name": "voa.council_tax_stock.band_b@E12000008@2025", + "target": 687430.0, + "final_estimate": 686701.6530418396, + "relative_error": -0.0010595216358907822 + }, + { + "name": "voa.council_tax_stock.band_b@E12000009@2025", + "target": 644890.0, + "final_estimate": 644656.4423274994, + "relative_error": -0.00036216668346634366 + }, + { + "name": "voa.council_tax_stock.band_c@E12000001@2025", + "target": 196180.0, + "final_estimate": 195561.16912078857, + "relative_error": -0.0031544035029637363 + }, + { + "name": "voa.council_tax_stock.band_c@E12000002@2025", + "target": 616070.0, + "final_estimate": 615056.9691366301, + "relative_error": -0.0016443437651077499 + }, + { + "name": "voa.council_tax_stock.band_c@E12000003@2025", + "target": 432290.0, + "final_estimate": 432190.8517436981, + "relative_error": -0.00022935588679330978 + }, + { + "name": "voa.council_tax_stock.band_c@E12000004@2025", + "target": 403840.0, + "final_estimate": 403513.7962150574, + "relative_error": -0.0008077550142200549 + }, + { + "name": "voa.council_tax_stock.band_c@E12000005@2025", + "target": 526260.0, + "final_estimate": 526829.0571471017, + "relative_error": 0.0010813231997524645 + }, + { + "name": "voa.council_tax_stock.band_c@E12000006@2025", + "target": 739570.0, + "final_estimate": 738989.6436042786, + "relative_error": -0.0007847213863751038 + }, + { + "name": "voa.council_tax_stock.band_c@E12000007@2025", + "target": 1040280.0, + "final_estimate": 1040911.5495267023, + "relative_error": 0.0006070957114452487 + }, + { + "name": "voa.council_tax_stock.band_c@E12000008@2025", + "target": 1075940.0, + "final_estimate": 1076367.3417282104, + "relative_error": 0.0003971798875499091 + }, + { + "name": "voa.council_tax_stock.band_c@E12000009@2025", + "target": 624030.0, + "final_estimate": 623910.069527626, + "relative_error": -0.00019218703006900693 + }, + { + "name": "voa.council_tax_stock.band_d@E12000001@2025", + "target": 113460.0, + "final_estimate": 113535.91244125366, + "relative_error": 0.0006690678763763627 + }, + { + "name": "voa.council_tax_stock.band_d@E12000002@2025", + "target": 363970.0, + "final_estimate": 364172.2722206116, + "relative_error": 0.000555738716409518 + }, + { + "name": "voa.council_tax_stock.band_d@E12000003@2025", + "target": 249530.0, + "final_estimate": 249682.00863170624, + "relative_error": 0.0006091797848204136 + }, + { + "name": "voa.council_tax_stock.band_d@E12000004@2025", + "target": 247850.0, + "final_estimate": 248075.7066001892, + "relative_error": 0.0009106580600734677 + }, + { + "name": "voa.council_tax_stock.band_d@E12000005@2025", + "target": 302500.0, + "final_estimate": 302494.9650115967, + "relative_error": -1.6644589763042356e-05 + }, + { + "name": "voa.council_tax_stock.band_d@E12000006@2025", + "target": 506540.0, + "final_estimate": 507094.8383417863, + "relative_error": 0.0010953495119561995 + }, + { + "name": "voa.council_tax_stock.band_d@E12000007@2025", + "target": 975750.0, + "final_estimate": 975893.4482135773, + "relative_error": 0.00014701328575687472 + }, + { + "name": "voa.council_tax_stock.band_d@E12000008@2025", + "target": 843560.0, + "final_estimate": 843906.1500854492, + "relative_error": 0.0004103443565949295 + }, + { + "name": "voa.council_tax_stock.band_d@E12000009@2025", + "target": 432070.0, + "final_estimate": 431523.3204908371, + "relative_error": -0.0012652568083016706 + }, + { + "name": "voa.council_tax_stock.band_e@E12000001@2025", + "target": 61090.0, + "final_estimate": 60841.29301071167, + "relative_error": -0.004071157133546081 + }, + { + "name": "voa.council_tax_stock.band_e@E12000002@2025", + "target": 216990.0, + "final_estimate": 217100.37469482422, + "relative_error": 0.000508662587327613 + }, + { + "name": "voa.council_tax_stock.band_e@E12000003@2025", + "target": 158600.0, + "final_estimate": 158287.07346630096, + "relative_error": -0.0019730550674592414 + }, + { + "name": "voa.council_tax_stock.band_e@E12000004@2025", + "target": 154970.0, + "final_estimate": 154614.54171562195, + "relative_error": -0.002293723200477846 + }, + { + "name": "voa.council_tax_stock.band_e@E12000005@2025", + "target": 193700.0, + "final_estimate": 193850.2388496399, + "relative_error": 0.0007756264823949023 + }, + { + "name": "voa.council_tax_stock.band_e@E12000006@2025", + "target": 313840.0, + "final_estimate": 313707.998315371, + "relative_error": -0.00042060185007968746 + }, + { + "name": "voa.council_tax_stock.band_e@E12000007@2025", + "target": 585130.0, + "final_estimate": 586220.793222915, + "relative_error": 0.0018641895355135303 + }, + { + "name": "voa.council_tax_stock.band_e@E12000008@2025", + "target": 551730.0, + "final_estimate": 551237.652431488, + "relative_error": -0.0008923704864915138 + }, + { + "name": "voa.council_tax_stock.band_e@E12000009@2025", + "target": 292090.0, + "final_estimate": 292151.2358722687, + "relative_error": 0.000209647274020599 + }, + { + "name": "voa.council_tax_stock.band_f@E12000001@2025", + "target": 26600.0, + "final_estimate": 26478.172035217285, + "relative_error": -0.004579998676041912 + }, + { + "name": "voa.council_tax_stock.band_f@E12000002@2025", + "target": 104330.0, + "final_estimate": 104026.50525665283, + "relative_error": -0.0029089882425684653 + }, + { + "name": "voa.council_tax_stock.band_f@E12000003@2025", + "target": 75690.0, + "final_estimate": 75540.59925603867, + "relative_error": -0.0019738504949310906 + }, + { + "name": "voa.council_tax_stock.band_f@E12000004@2025", + "target": 73920.0, + "final_estimate": 73899.63159942627, + "relative_error": -0.00027554654455804205 + }, + { + "name": "voa.council_tax_stock.band_f@E12000005@2025", + "target": 105630.0, + "final_estimate": 105265.54351615906, + "relative_error": -0.0034503122582688855 + }, + { + "name": "voa.council_tax_stock.band_f@E12000006@2025", + "target": 172960.0, + "final_estimate": 172699.23252487183, + "relative_error": -0.0015076750412128458 + }, + { + "name": "voa.council_tax_stock.band_f@E12000007@2025", + "target": 298920.0, + "final_estimate": 298466.0869884491, + "relative_error": -0.001518510007864657 + }, + { + "name": "voa.council_tax_stock.band_f@E12000008@2025", + "target": 337260.0, + "final_estimate": 336325.5570526123, + "relative_error": -0.002770690112636231 + }, + { + "name": "voa.council_tax_stock.band_f@E12000009@2025", + "target": 147920.0, + "final_estimate": 148004.26309013367, + "relative_error": 0.0005696531242135411 + }, + { + "name": "voa.council_tax_stock.band_g@E12000001@2025", + "target": 14600.0, + "final_estimate": 14568.463012695312, + "relative_error": -0.0021600676236087327 + }, + { + "name": "voa.council_tax_stock.band_g@E12000002@2025", + "target": 65750.0, + "final_estimate": 65524.22173118591, + "relative_error": -0.003433890019986113 + }, + { + "name": "voa.council_tax_stock.band_g@E12000003@2025", + "target": 42180.0, + "final_estimate": 42097.12434768677, + "relative_error": -0.0019648092060984453 + }, + { + "name": "voa.council_tax_stock.band_g@E12000004@2025", + "target": 39400.0, + "final_estimate": 39448.5912399292, + "relative_error": 0.001233280201248711 + }, + { + "name": "voa.council_tax_stock.band_g@E12000005@2025", + "target": 62780.0, + "final_estimate": 62430.973487854004, + "relative_error": -0.005559517555686462 + }, + { + "name": "voa.council_tax_stock.band_g@E12000006@2025", + "target": 113720.0, + "final_estimate": 113626.11828231812, + "relative_error": -0.0008255515096894545 + }, + { + "name": "voa.council_tax_stock.band_g@E12000007@2025", + "target": 225170.0, + "final_estimate": 225394.21272850037, + "relative_error": 0.000995748672116029 + }, + { + "name": "voa.council_tax_stock.band_g@E12000008@2025", + "target": 265610.0, + "final_estimate": 265154.20303344727, + "relative_error": -0.0017160384268391038 + }, + { + "name": "voa.council_tax_stock.band_g@E12000009@2025", + "target": 81960.0, + "final_estimate": 81830.3019065857, + "relative_error": -0.0015824559957821698 + }, + { + "name": "voa.council_tax_stock.band_h@E12000001@2025", + "target": 1570.0, + "final_estimate": 0.0, + "relative_error": -1.0 + }, + { + "name": "voa.council_tax_stock.band_h@E12000002@2025", + "target": 7350.0, + "final_estimate": 0.0, + "relative_error": -1.0 + }, + { + "name": "voa.council_tax_stock.band_h@E12000003@2025", + "target": 3770.0, + "final_estimate": 0.0, + "relative_error": -1.0 + }, + { + "name": "voa.council_tax_stock.band_h@E12000004@2025", + "target": 3480.0, + "final_estimate": 3481.85693359375, + "relative_error": 0.0005336016073994253 + }, + { + "name": "voa.council_tax_stock.band_h@E12000005@2025", + "target": 6170.0, + "final_estimate": 6156.091949462891, + "relative_error": -0.0022541410919139993 + }, + { + "name": "voa.council_tax_stock.band_h@E12000006@2025", + "target": 14830.0, + "final_estimate": 14852.746398925781, + "relative_error": 0.001533809772473449 + }, + { + "name": "voa.council_tax_stock.band_h@E12000007@2025", + "target": 68500.0, + "final_estimate": 68412.60824584961, + "relative_error": -0.0012757920313925639 + }, + { + "name": "voa.council_tax_stock.band_h@E12000008@2025", + "target": 40390.0, + "final_estimate": 40385.87062072754, + "relative_error": -0.0001022376645818504 + }, + { + "name": "voa.council_tax_stock.band_h@E12000009@2025", + "target": 8430.0, + "final_estimate": 8410.222473144531, + "relative_error": -0.0023460885949547748 + }, + { + "name": "voa.council_tax_stock.total@E12000001@2025", + "target": 1287830.0, + "final_estimate": 1286741.165266037, + "relative_error": -0.0008454801751496803 + }, + { + "name": "voa.council_tax_stock.total@E12000002@2025", + "target": 3466140.0, + "final_estimate": 3458643.1612537596, + "relative_error": -0.002162878229454195 + }, + { + "name": "voa.council_tax_stock.total@E12000003@2025", + "target": 2547080.0, + "final_estimate": 2542661.161552906, + "relative_error": -0.0017348644122265353 + }, + { + "name": "voa.council_tax_stock.total@E12000004@2025", + "target": 2233400.0, + "final_estimate": 2233410.1796560287, + "relative_error": 4.5579188809651465e-06 + }, + { + "name": "voa.council_tax_stock.total@E12000005@2025", + "target": 2637190.0, + "final_estimate": 2637206.0187637694, + "relative_error": 6.074178868196073e-06 + }, + { + "name": "voa.council_tax_stock.total@E12000006@2025", + "target": 2863600.0, + "final_estimate": 2863515.277796158, + "relative_error": -2.958590719440515e-05 + }, + { + "name": "voa.council_tax_stock.total@E12000007@2025", + "target": 3837430.0, + "final_estimate": 3839582.350537322, + "relative_error": 0.0005608833352848119 + }, + { + "name": "voa.council_tax_stock.total@E12000008@2025", + "target": 4169520.0, + "final_estimate": 4167526.611131668, + "relative_error": -0.0004780859351512666 + }, + { + "name": "voa.council_tax_stock.total@E12000009@2025", + "target": 2704390.0, + "final_estimate": 2703398.4944820404, + "relative_error": -0.0003666281556874544 + } + ] +} diff --git a/docs/shared-constants.md b/docs/shared-constants.md index d9144ca2d..02442f68e 100644 --- a/docs/shared-constants.md +++ b/docs/shared-constants.md @@ -33,6 +33,9 @@ is the shared source for geography code mappings used by both the calibration and build packages. It currently defines: - `UK_GEOGRAPHY_ID_TO_LABEL` +- `UK_REGION_TIER`, `UK_REGION_TIER_ENUM` and `UK_LADDER_NATION_REGION_CODES` (the + twelve-area region tier UK national references fan out over, its spine + `region` enum names, and the ladder's nation pseudo-codes; microcosm#905) - `US_STATE_FIPS_TO_POSTAL` - `US_STATE_NUMERIC_FIPS_TO_POSTAL` - `US_STATE_POSTAL_TO_NUMERIC_FIPS` diff --git a/docs/uk-chronicle-feed-repin.md b/docs/uk-chronicle-feed-repin.md index 1c5312c17..8814913d9 100644 --- a/docs/uk-chronicle-feed-repin.md +++ b/docs/uk-chronicle-feed-repin.md @@ -41,6 +41,14 @@ Verify the complete compiled target diff on both surfaces, including targets outside the intended policy area, and record the value moves in the changelog fragment. +Two-level (country + region) contract targets fan out over the region tier +(`UK_REGION_TIER` in `microcosm.calibrate.geography_constants`), one reference per area +(microcosm#905); their cells resolve Chronicle's region- and country-stamped +facts, so a re-pin must carry all twelve areas or the national generator +refuses. The cross-grain legs of English constituencies and authorities come +from `region_code_by_area` in `local_area_crosswalk.json`, regenerated from +the sha-pinned ladder with `tools/generate_uk_local_area_crosswalk.py`. + The national calibration runner refuses a feed whose facts or manifest digest differs from the committed pin. `--allow-unpinned-feed` is an explicit diagnostic override recorded in the run manifest; it is not a re-pin procedure. diff --git a/packages/microcosm-build/src/microcosm/build/cross_grain.py b/packages/microcosm-build/src/microcosm/build/cross_grain.py index 5e11cd908..e3c197f30 100644 --- a/packages/microcosm-build/src/microcosm/build/cross_grain.py +++ b/packages/microcosm-build/src/microcosm/build/cross_grain.py @@ -48,6 +48,13 @@ class CrossGrainRule: bridges: tuple[CrossGrainBridge, ...] leg_of_area: Callable[[str], str] parent_geography_legs: Mapping[str, tuple[str, ...]] + #: Grains whose rows parent the grains below them. Empty means the top + #: grain alone (the standing single-winner rule). Declaring a middle tier + #: (a region between country and constituency) lets each lower leg take + #: its nearest covering control, so a region row controls its own + #: constituencies and authorities while a country row controls the legs no + #: region row covers. + control_grains: tuple[str, ...] = () @dataclass(frozen=True) @@ -140,7 +147,7 @@ def detect_cross_grain_inconsistencies( bridge = None is_bound_higher = contract_id in bound_set - if grain == rule.grain_precedence[0] and not is_bound_higher: + if grain in _control_grains(rule) and not is_bound_higher: continue if is_bound_higher: seen_bound.add(contract_id) @@ -182,28 +189,43 @@ def detect_cross_grain_inconsistencies( inconsistencies: list[CrossGrainInconsistency] = [] precedence = {grain: index for index, grain in enumerate(rule.grain_precedence)} + control_grains = _control_grains(rule) for (kind, bridge_id, signature), rows in grouped.items(): grains = sorted({row[1] for row in rows}, key=precedence.__getitem__) if len(grains) < 2: continue - winning_grain = grains[0] - winning = tuple(row[0] for row in rows if row[1] == winning_grain) - higher_ids = tuple( - sorted( - { - target_id - for position in winning - if ( - target_id := _contract_target_id( - str(local_frame.iloc[position][columns["target_id"]]) + identity = _inconsistency_identity(kind, bridge_id, signature) + controls_present = [grain for grain in grains if grain in control_grains] + # A group with no control-tier row keeps the standing single-winner + # rule: its top grain parents the rest. With control rows present, + # every control grain parents each grain below it, and reconciliation + # assigns each lower leg to its nearest covering control. + pairs = ( + [(grains[0], lower) for lower in grains[1:]] + if not controls_present + else [ + (higher, lower) + for lower in grains + for higher in controls_present + if precedence[higher] < precedence[lower] + ] + ) + for winning_grain, lower_grain in pairs: + winning = tuple(row[0] for row in rows if row[1] == winning_grain) + higher_ids = tuple( + sorted( + { + target_id + for position in winning + if ( + target_id := _contract_target_id( + str(local_frame.iloc[position][columns["target_id"]]) + ) ) - ) - is not None - } + is not None + } + ) ) - ) - identity = _inconsistency_identity(kind, bridge_id, signature) - for lower_grain in grains[1:]: lower = tuple(row[0] for row in rows if row[1] == lower_grain) inconsistencies.append( CrossGrainInconsistency( @@ -217,7 +239,19 @@ def detect_cross_grain_inconsistencies( higher_target_ids=higher_ids, ) ) - return tuple(sorted(inconsistencies, key=lambda group: group.inconsistency_id)) + # Lower grains reconcile top-down (a region row is rescaled to its country + # before it controls its authorities), and within one lower grain the + # nearest control grain claims first. + return tuple( + sorted( + inconsistencies, + key=lambda group: ( + precedence[group.lower_grain], + -precedence[group.winning_grain], + group.inconsistency_id, + ), + ) + ) def _reconcile_cross_grain_surface_with_control_receipts( @@ -245,8 +279,28 @@ def _reconcile_cross_grain_surface_with_control_receipts( receipts: list[dict[str, Any]] = [] empty_legs_licensed: list[dict[str, Any]] = [] controls_without_lower_rows: list[dict[str, Any]] = [] + delegated_legs: list[dict[str, Any]] = [] + control_grains = _control_grains(rule) + # Rows already rescaled by a nearer control, per group identity and lower + # grain, so a farther control never rescales them again; and the rows no + # control has covered yet, checked once every pair has had its turn. + claimed: dict[tuple[str, str], set[int]] = {} + unparented_rows: dict[tuple[str, str], dict[int, str]] = {} + first_pair_id: dict[tuple[str, str], str] = {} + absent_middle_tier_legs: list[dict[str, Any]] = [] + pairs_per_key: dict[tuple[str, str], int] = {} + for group in materialized_groups: + key = (group.inconsistency_id.rsplit(":", 1)[0], group.lower_grain) + pairs_per_key[key] = pairs_per_key.get(key, 0) + 1 + pairs_seen: dict[tuple[str, str], int] = {} for group in materialized_groups: controls = _winning_controls(reconciled, group, columns, rule) + claim_key = (group.inconsistency_id.rsplit(":", 1)[0], group.lower_grain) + first_pair_id.setdefault(claim_key, group.inconsistency_id) + pairs_seen[claim_key] = pairs_seen.get(claim_key, 0) + 1 + last_pair_for_key = pairs_seen[claim_key] == pairs_per_key[claim_key] + already = claimed.setdefault(claim_key, set()) + lower_by_leg_all: dict[str, list[int]] = {} lower_by_leg: dict[str, list[int]] = {} for position in group.lower_positions: area = str(reconciled.iloc[position][columns["geography_id"]]) @@ -256,7 +310,9 @@ def _reconcile_cross_grain_surface_with_control_receipts( f"cross-grain inconsistency {group.inconsistency_id!r} " f"maps area {area!r} to a blank leg." ) - lower_by_leg.setdefault(leg, []).append(position) + lower_by_leg_all.setdefault(leg, []).append(position) + if position not in already: + lower_by_leg.setdefault(leg, []).append(position) lower_target_ids = tuple( sorted( @@ -284,12 +340,25 @@ def _reconcile_cross_grain_surface_with_control_receipts( continue assigned_controls[leg] = control - unparented = sorted(set(lower_by_leg) - set(assigned_controls)) - if unparented: - raise ValueError( - f"cross-grain inconsistency {group.inconsistency_id!r} has " - f"unparented lower-grain leg(s) {unparented}." + pending = unparented_rows.setdefault(claim_key, {}) + for leg in set(lower_by_leg) - set(assigned_controls): + for position in lower_by_leg[leg]: + pending[position] = leg + if last_pair_for_key and group.lower_grain not in control_grains: + # No farther control can still claim these leaf rows: refuse now, + # ahead of the empty-leg licence check, as the standing rule does. + unparented = sorted( + { + leg + for position, leg in pending.items() + if position not in already and leg not in assigned_controls + } ) + if unparented: + raise ValueError( + f"cross-grain inconsistency {group.inconsistency_id!r} has " + f"unparented lower-grain leg(s) {unparented}." + ) populated_controls: list[dict[str, Any]] = [] for control in controls: @@ -298,10 +367,53 @@ def _reconcile_cross_grain_surface_with_control_receipts( for leg in control["covered_legs"] for position in lower_by_leg.get(leg, ()) ] + delegated = [ + leg + for leg in control["covered_legs"] + if leg not in lower_by_leg and leg in lower_by_leg_all + ] + empty = [ + leg for leg in control["covered_legs"] if leg not in lower_by_leg_all + ] + if positions and delegated: + raise ValueError( + f"cross-grain inconsistency {group.inconsistency_id!r} " + f"control {control['parent_geography_id']!r} covers leg(s) " + f"{delegated} that a nearer control already reconciled " + "alongside legs it must still reconcile; a control cannot " + "be split across tiers." + ) if positions: populated_controls.append(control) continue - for leg in control["covered_legs"]: + if delegated: + delegated_legs.append( + { + "inconsistency_id": group.inconsistency_id, + "parent_geography_id": str(control["parent_geography_id"]), + "legs": delegated, + "reason": ( + "every lower row on these legs was reconciled by a " + "nearer control grain" + ), + } + ) + if group.lower_grain in control_grains: + # A middle tier need not exist under every control: a country + # row with no region rows on its legs parents the leaf rows + # there directly. Not a licence matter. + if empty: + absent_middle_tier_legs.append( + { + "inconsistency_id": group.inconsistency_id, + "parent_geography_id": str(control["parent_geography_id"]), + "legs": empty, + } + ) + continue + if not empty: + continue + for leg in empty: unlicensed = [ target_id for target_id in lower_target_ids @@ -388,6 +500,7 @@ def _reconcile_cross_grain_surface_with_control_receipts( reconciled.iloc[positions, reconciled.columns.get_loc(columns["value"])] = ( raw_values * factor ) + already.update(positions) new_total = float( reconciled.iloc[positions][columns["value"]] .to_numpy(dtype=np.float64) @@ -435,11 +548,29 @@ def _reconcile_cross_grain_surface_with_control_receipts( "legs": leg_receipts, } ) + for (identity, lower_grain), pending in unparented_rows.items(): + if lower_grain in control_grains: + # A control-tier row with no control above it is the top of its + # own leg, not an orphan. + continue + still = { + leg + for position, leg in pending.items() + if position not in claimed[(identity, lower_grain)] + } + if still: + raise ValueError( + f"cross-grain inconsistency " + f"{first_pair_id[(identity, lower_grain)]!r} has " + f"unparented lower-grain leg(s) {sorted(still)}." + ) return ( reconciled, receipts, empty_legs_licensed, controls_without_lower_rows, + delegated_legs, + absent_middle_tier_legs, ) @@ -452,7 +583,7 @@ def reconcile_cross_grain_surface( ) -> tuple[pd.DataFrame, list[dict[str, Any]]]: """Return a copied surface with every detected lower grain rescaled.""" - reconciled, receipts, _, _ = _reconcile_cross_grain_surface_with_control_receipts( + reconciled, receipts, *_ = _reconcile_cross_grain_surface_with_control_receipts( local_frame, groups, rule, @@ -491,6 +622,8 @@ def apply_cross_grain_reconciliation( group_receipts, empty_legs_licensed, controls_without_lower_rows, + delegated_legs, + absent_middle_tier_legs, ) = _reconcile_cross_grain_surface_with_control_receipts( local_frame, groups, @@ -504,6 +637,8 @@ def apply_cross_grain_reconciliation( "unbound_bridges": unbound_bridges, "empty_legs_licensed": empty_legs_licensed, "controls_without_lower_rows": controls_without_lower_rows, + "delegated_legs": delegated_legs, + "absent_middle_tier_legs": absent_middle_tier_legs, "absence": ( None if groups @@ -565,8 +700,24 @@ def _surface_columns(frame: pd.DataFrame) -> dict[str, str]: return resolved +def _control_grains(rule: CrossGrainRule) -> tuple[str, ...]: + return tuple(rule.control_grains) or (rule.grain_precedence[0],) + + def _validate_rule(rule: CrossGrainRule) -> None: _require_unique_nonblank(rule.grain_precedence, label="grain_precedence") + if rule.control_grains: + _require_unique_nonblank(rule.control_grains, label="control_grains") + unknown = [g for g in rule.control_grains if g not in rule.grain_precedence] + if unknown: + raise ValueError( + f"cross-grain control_grains {unknown} are not in grain_precedence." + ) + if rule.grain_precedence[0] not in rule.control_grains: + raise ValueError( + "cross-grain control_grains must include the top grain " + f"{rule.grain_precedence[0]!r}." + ) _require_unique_nonblank(rule.signature_fields, label="signature_fields") if not rule.grain_precedence: raise ValueError("cross-grain grain_precedence must not be empty.") @@ -770,7 +921,15 @@ def _winning_controls( } for position in group.winning_positions ] - if group.winning_grain == rule.grain_precedence[0]: + # A winning row whose geography declares its legs is a parent control in + # its own right, whatever grain it sits at: the top grain always is, and a + # middle tier (a region between country and constituency) is when the + # country declares a leg map for every one of its codes. Rows with no + # declared legs stay on the area-derived path below. + declared_parents = group.winning_grain == rule.grain_precedence[0] or all( + row["geography_id"] in rule.parent_geography_legs for row in rows + ) + if declared_parents: by_geography: dict[str, list[dict[str, Any]]] = {} for row in rows: by_geography.setdefault(row["geography_id"], []).append(row) diff --git a/packages/microcosm-build/src/microcosm/build/target_materialization.py b/packages/microcosm-build/src/microcosm/build/target_materialization.py index 2629e4507..9e2a5361f 100644 --- a/packages/microcosm-build/src/microcosm/build/target_materialization.py +++ b/packages/microcosm-build/src/microcosm/build/target_materialization.py @@ -2,6 +2,7 @@ from __future__ import annotations +import json import math import re from collections.abc import Callable, Mapping, Sequence @@ -490,6 +491,7 @@ def materialize_target_bindings( contract_target_id = spec.metadata.get("contract_target_id") target = contract_targets.get(str(contract_target_id)) binding = target["bindings"]["policyengine"] if target is not None else {} + binding = _with_geography_predicate(binding, spec) if ( hasattr(adapter, "has_column") and adapter.has_column(spec.entity, spec.measure) @@ -629,6 +631,54 @@ def input_substitution_counterfactual( raise ValueError("adapter does not provide counterfactual_delta") +def _with_geography_predicate( + binding: Mapping[str, Any], + spec: Any, +) -> Mapping[str, Any]: + """Scope a contract binding to one reference's declared geography. + + A reference authored by a geography fan-out shares its contract binding + with every sibling cell; what distinguishes the cells is the predicate the + authoring stamped into ``metadata.geography_predicate`` (a JSON object in + the ordinary predicate vocabulary). It is appended to the binding's + ``filters`` verbatim. References without the key are untouched, so no + existing country-level reference is re-scoped by its geography stamp. + """ + + metadata = getattr(spec, "metadata", None) or {} + raw = metadata.get("geography_predicate") + if not raw: + return binding + name = getattr(spec, "name", "") + try: + predicate = json.loads(str(raw)) + except json.JSONDecodeError as error: + raise ValueError( + f"{name!r}: metadata.geography_predicate is not valid JSON: {error}" + ) from None + if not isinstance(predicate, Mapping) or not predicate.get("variable"): + raise ValueError( + f"{name!r}: metadata.geography_predicate must be a predicate object " + "naming a variable." + ) + if binding.get("kind"): + raise ValueError( + f"{name!r}: a geography predicate cannot scope a provider binding " + f"of kind {binding['kind']!r}; providers do not read filters." + ) + map_to = predicate.get("map_to") + entity = getattr(spec, "entity", None) + if map_to is not None and entity and str(map_to) != str(entity): + raise ValueError( + f"{name!r}: metadata.geography_predicate projects to {map_to!r} but " + f"the reference measures {entity!r}; the mask would misalign." + ) + return { + **binding, + "filters": [*binding.get("filters", ()), dict(predicate)], + } + + def _prepared_column_values( adapter: Any, entity: str, diff --git a/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py b/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py index fcc5cd100..5a56ff095 100644 --- a/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py +++ b/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py @@ -39,6 +39,15 @@ ["LedgerTargetReference", "TargetRegistry"], "TargetRegistry" ] GeographyPin = Mapping[str, str] +#: ``(target, geography_level, geography_id, entity) -> extra reference metadata`` +#: for one geography fan-out row. Values are strings (reference metadata is a +#: string mapping); a country encodes structured values, such as a predicate, +#: as JSON. +GeographyFanoutMetadata = Callable[ + [Mapping[str, Any], str, str, str], Mapping[str, str] +] +#: Ordered ``(geography_level, geography_id)`` pairs one target fans out over. +GeographyFanout = tuple[tuple[str, str], ...] @dataclass(frozen=True) @@ -71,6 +80,18 @@ class TargetReferenceAuthoringConfig: default_factory=dict ) signed_exclusions_by_target_id: Mapping[str, str] = field(default_factory=dict) + #: Targets that fan out over a declared geography roster instead of pinning + #: one geography: one reference per ``(geography_level, geography_id)``, + #: named ``target_id@geography_id`` with its own measure column, the same + #: way area-grain references are authored. A target listed here must not + #: also carry a geography pin. Every roster cell must compile; an absent + #: fact refuses the run rather than deferring silently. + geography_fanout_by_target_id: Mapping[str, GeographyFanout] = field( + default_factory=dict + ) + #: Optional per-row metadata for geography fan-out rows (for example the + #: predicate that scopes the measure to the row's geography). + geography_fanout_metadata: GeographyFanoutMetadata | None = None binding_vocabulary: frozenset[str] = frozenset() source_fact_feed: str = "" uprating_appliers: Mapping[str, UpratingApplier] = field(default_factory=dict) @@ -187,7 +208,22 @@ def author_target_references( for target in reference_targets: target_id = str(target["target_id"]) pin = config.geography_pins.get(target_id, {}) - geography_pin_report[target_id] = dict(pin) + geography_fanout = config.geography_fanout_by_target_id.get(target_id) + if geography_fanout: + if pin: + raise ValueError( + f"target {target_id!r} declares both a geography pin " + f"{dict(pin)!r} and a geography fan-out; a fanned-out " + "target takes its geography from the roster only." + ) + geography_pin_report[target_id] = { + "geography_fanout": [ + {"geography_level": str(level), "geography_id": str(area_id)} + for level, area_id in geography_fanout + ] + } + else: + geography_pin_report[target_id] = dict(pin) source_facts = _source_prefilter(fact_rows, facts_by_source, target) selector = _target_selector(target, pin, config) signed_exclusion = config.signed_exclusions_by_target_id.get(target_id) @@ -240,6 +276,10 @@ def author_target_references( "matched_fact_count_overall": len(matched), "matched_fact_count_at_or_before_period": len(eligible), } + row_geography_level = str(row["metadata"].get("geography_level") or "") + if row_geography_level: + entry["geography_level"] = row_geography_level + entry["geography_id"] = str(row["metadata"].get("geography_id") or "") if reference.period_match_policy == "source_window": entry["matched_fact_count_in_source_window"] = sum( _assertion_allowed(reference, fact) for fact in matched @@ -255,6 +295,15 @@ def author_target_references( except ValueError as error: entry["status"] = _classify_deferral(error, matched, eligible) entry["error"] = _compact_compile_error(entry["status"]) + if geography_fanout: + # A roster cell that does not compile is a hole in a + # declared partition, not a deferral: refuse, the way the + # area-grain authoring refuses an unsigned absence. + raise ValueError( + f"Unsigned geography fan-out absence for {target_id!r} " + f"at {entry.get('geography_level')!r}/" + f"{entry.get('geography_id')!r}: {entry['status']}." + ) from error else: spec = registry.specs[0] resolved_period = spec.metadata.get("ledger_fact_period", "") @@ -685,6 +734,14 @@ def _candidate_rows( config: TargetReferenceAuthoringConfig, hierarchy_catalog: Mapping[str, Any], ) -> Iterable[dict[str, Any]]: + geography_fanout = config.geography_fanout_by_target_id.get( + str(target["target_id"]) + ) + if geography_fanout: + yield from _geography_fanout_rows( + target, geography_fanout, config, hierarchy_catalog=hierarchy_catalog + ) + return selector = _target_selector(target, geography_pin, config) if "groupby_dimension" in selector: rows = _fanout_rows( @@ -705,6 +762,70 @@ def _candidate_rows( ) +def _geography_fanout_rows( + target: Mapping[str, Any], + areas: GeographyFanout, + config: TargetReferenceAuthoringConfig, + *, + hierarchy_catalog: Mapping[str, Any], +) -> Iterable[dict[str, Any]]: + """One reference per roster cell, named and measured ``target_id@area``. + + The selector is the contract selector plus the cell's geography, exactly + as a pinned reference is built, so every other declaration (value + operation, member count, period policy, uprating holds) follows the + contract unchanged. The row's metadata carries the cell's geography under + the same keys area-grain references use, plus whatever the country's + ``geography_fanout_metadata`` adds for the cell. + """ + + target_id = str(target["target_id"]) + seen: set[str] = set() + for geography_level, geography_id in areas: + level = str(geography_level) + area_id = str(geography_id) + if not level or not area_id: + raise ValueError( + f"target {target_id!r} geography fan-out has a blank cell " + f"({geography_level!r}, {geography_id!r})." + ) + if area_id in seen: + raise ValueError( + f"target {target_id!r} geography fan-out lists {area_id!r} twice." + ) + seen.add(area_id) + selector = _target_selector( + target, + {"geography_level": level, "geography_id": area_id}, + config, + ) + row = _reference_row( + target, + selector, + config, + name=f"{target_id}@{area_id}", + hierarchy_catalog=hierarchy_catalog, + ) + metadata: dict[str, str] = { + **row["metadata"], + "geography_level": level, + "geography_id": area_id, + } + if config.geography_fanout_metadata is not None: + extra = config.geography_fanout_metadata( + target, level, area_id, str(row["entity"]) + ) + for key, value in extra.items(): + if not isinstance(value, str): + raise ValueError( + f"target {target_id!r} geography fan-out metadata " + f"{key!r} must be a string, got {type(value).__name__}." + ) + metadata[str(key)] = value + row["metadata"] = metadata + yield row + + def _target_selector( target: Mapping[str, Any], geography_pin: GeographyPin, diff --git a/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json index 6b3d39481..d327461dc 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json +++ b/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json @@ -423,6 +423,33 @@ "adjudication": "microcosm#355 (dataset-size experiment; ruling by Mar\u00eda 2026-09-08 after the 45,800 smoke's by-name refusal)", "approved_on": "2026-09-08", "expires_on": "2026-12-08" + }, + { + "name": "voa.council_tax_stock.band_h@E12000001", + "reason": "Spine support absent for band H in the North East region-tier cell: the spine carries no council-tax band-H household there (spine-m held 170 band-H households from 49 raw FRS households, none in the North East, North West or Yorkshire and the Humber; microcosm#762 A14), so the cell measures 0 against the VOA stock (-100% on the #905 spine-q comparison, docs/evidence/uk-region-tier-905/calibration-comparison.json) while the other 78 VOA region cells fit within 5%. The same class is signed for the local band-H family under council_tax_band_h_spine_support_absent; the cell binds when a spine vintage carries broader band-H support.", + "tracking": "microcosm#796", + "approved_by": "juaristi22", + "adjudication": "microcosm#905 (region-tier activation; ruling by Mar\u00eda 2026-09-14 on PR #906, the #762 A14 spine-support class)", + "approved_on": "2026-09-14", + "expires_on": "2026-11-26" + }, + { + "name": "voa.council_tax_stock.band_h@E12000002", + "reason": "Spine support absent for band H in the North West region-tier cell: the spine carries no council-tax band-H household there (spine-m held 170 band-H households from 49 raw FRS households, none in the North East, North West or Yorkshire and the Humber; microcosm#762 A14), so the cell measures 0 against the VOA stock (-100% on the #905 spine-q comparison, docs/evidence/uk-region-tier-905/calibration-comparison.json) while the other 78 VOA region cells fit within 5%. The same class is signed for the local band-H family under council_tax_band_h_spine_support_absent; the cell binds when a spine vintage carries broader band-H support.", + "tracking": "microcosm#796", + "approved_by": "juaristi22", + "adjudication": "microcosm#905 (region-tier activation; ruling by Mar\u00eda 2026-09-14 on PR #906, the #762 A14 spine-support class)", + "approved_on": "2026-09-14", + "expires_on": "2026-11-26" + }, + { + "name": "voa.council_tax_stock.band_h@E12000003", + "reason": "Spine support absent for band H in the Yorkshire and The Humber region-tier cell: the spine carries no council-tax band-H household there (spine-m held 170 band-H households from 49 raw FRS households, none in the North East, North West or Yorkshire and the Humber; microcosm#762 A14), so the cell measures 0 against the VOA stock (-100% on the #905 spine-q comparison, docs/evidence/uk-region-tier-905/calibration-comparison.json) while the other 78 VOA region cells fit within 5%. The same class is signed for the local band-H family under council_tax_band_h_spine_support_absent; the cell binds when a spine vintage carries broader band-H support.", + "tracking": "microcosm#796", + "approved_by": "juaristi22", + "adjudication": "microcosm#905 (region-tier activation; ruling by Mar\u00eda 2026-09-14 on PR #906, the #762 A14 spine-support class)", + "approved_on": "2026-09-14", + "expires_on": "2026-11-26" } ] } diff --git a/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_incumbent_2025_signed_differences.json b/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_incumbent_2025_signed_differences.json index d6ae6f7e1..fb287cd0d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_incumbent_2025_signed_differences.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_incumbent_2025_signed_differences.json @@ -1,11 +1,11 @@ { - "compiled_count": 424, + "compiled_count": 595, "counts_by_kind": { - "calibration_drift": 172, - "fixture_only": 269, - "ledger_only": 56 + "calibration_drift": 280, + "fixture_only": 80, + "ledger_only": 38 }, - "difference_count": 497, + "difference_count": 398, "differences": [ { "fixture_value": 1608000.0, @@ -372,2899 +372,2314 @@ "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 726000.0, + "fixture_value": 304799621177.5439, "kind": "fixture_only", - "name": "ons/east_age_0_9", + "name": "ons/household_land_value/EAST_MIDLANDS", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 741000.0, + "fixture_value": 542672059385.554, "kind": "fixture_only", - "name": "ons/east_age_10_19", + "name": "ons/household_land_value/EAST_OF_ENGLAND", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 749000.0, + "fixture_value": 1188167933642.289, "kind": "fixture_only", - "name": "ons/east_age_20_29", + "name": "ons/household_land_value/LONDON", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 890000.0, + "fixture_value": 119603822538.99867, "kind": "fixture_only", - "name": "ons/east_age_30_39", + "name": "ons/household_land_value/NORTH_EAST", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 851000.0, + "fixture_value": 422892569458.29254, "kind": "fixture_only", - "name": "ons/east_age_40_49", + "name": "ons/household_land_value/NORTH_WEST", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 867000.0, + "fixture_value": 280395193712.8084, "kind": "fixture_only", - "name": "ons/east_age_50_59", + "name": "ons/household_land_value/SCOTLAND", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 746000.0, + "fixture_value": 885848048153.7532, "kind": "fixture_only", - "name": "ons/east_age_60_69", + "name": "ons/household_land_value/SOUTH_EAST", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 643000.0, + "fixture_value": 456726035827.05096, "kind": "fixture_only", - "name": "ons/east_age_70_79", + "name": "ons/household_land_value/SOUTH_WEST", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 379000.0, + "fixture_value": 179320185054.4999, "kind": "fixture_only", - "name": "ons/east_age_80_89", + "name": "ons/household_land_value/WALES", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 532000.0, + "fixture_value": 364340113693.65784, "kind": "fixture_only", - "name": "ons/east_midlands_age_0_9", + "name": "ons/household_land_value/WEST_MIDLANDS", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 585000.0, + "fixture_value": 298105966119.05054, "kind": "fixture_only", - "name": "ons/east_midlands_age_10_19", + "name": "ons/household_land_value/YORKSHIRE", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 632000.0, + "fixture_value": 8374612.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_20_29", + "name": "ons/tenure_england_owned_outright", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 669000.0, + "fixture_value": 7667051.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_30_39", + "name": "ons/tenure_england_owned_with_mortgage", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 621000.0, + "fixture_value": 5299840.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_40_49", + "name": "ons/tenure_england_rented_privately", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 681000.0, + "fixture_value": 4274613.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_50_59", + "name": "ons/tenure_england_social_rent", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 592000.0, + "fixture_value": 25616116.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_60_69", + "name": "ons/tenure_england_total", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 500000.0, + "fixture_value": 181700000.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_70_79", + "name": "slc/student_loan_repayment/northern_ireland", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 273000.0, + "fixture_value": 203300000.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_80_89", + "name": "slc/student_loan_repayment/scotland", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 304799621177.5439, + "fixture_value": 229100000.0, "kind": "fixture_only", - "name": "ons/household_land_value/EAST_MIDLANDS", + "name": "slc/student_loan_repayment/wales", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 542672059385.554, + "fixture_value": 215380.0, "kind": "fixture_only", - "name": "ons/household_land_value/EAST_OF_ENGLAND", + "name": "voa/council_tax/WALES/A", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 1188167933642.289, + "fixture_value": 307070.0, "kind": "fixture_only", - "name": "ons/household_land_value/LONDON", + "name": "voa/council_tax/WALES/B", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 119603822538.99867, + "fixture_value": 323220.0, "kind": "fixture_only", - "name": "ons/household_land_value/NORTH_EAST", + "name": "voa/council_tax/WALES/C", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 422892569458.29254, + "fixture_value": 241220.0, "kind": "fixture_only", - "name": "ons/household_land_value/NORTH_WEST", + "name": "voa/council_tax/WALES/D", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 280395193712.8084, + "fixture_value": 200840.0, "kind": "fixture_only", - "name": "ons/household_land_value/SCOTLAND", + "name": "voa/council_tax/WALES/E", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 885848048153.7532, + "fixture_value": 122650.0, "kind": "fixture_only", - "name": "ons/household_land_value/SOUTH_EAST", + "name": "voa/council_tax/WALES/F", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 456726035827.05096, + "fixture_value": 55190.0, "kind": "fixture_only", - "name": "ons/household_land_value/SOUTH_WEST", + "name": "voa/council_tax/WALES/G", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 179320185054.4999, + "fixture_value": 13190.0, "kind": "fixture_only", - "name": "ons/household_land_value/WALES", + "name": "voa/council_tax/WALES/H", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 364340113693.65784, + "fixture_value": 1484410.0, "kind": "fixture_only", - "name": "ons/household_land_value/WEST_MIDLANDS", + "name": "voa/council_tax/WALES/total", "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 298105966119.05054, - "kind": "fixture_only", - "name": "ons/household_land_value/YORKSHIRE", + "kind": "ledger_only", + "ledger_value": 95031.0, + "name": "dfe.funded_childcare.early_learning_2_year_olds", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1042000.0, - "kind": "fixture_only", - "name": "ons/london_age_0_9", + "kind": "ledger_only", + "ledger_value": 396965.0, + "name": "dfe.funded_childcare.universal_only_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1038000.0, - "kind": "fixture_only", - "name": "ons/london_age_10_19", + "kind": "ledger_only", + "ledger_value": 621482.0, + "name": "dfe.funded_childcare.working_parent_children_2_to_4", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1470000.0, - "kind": "fixture_only", - "name": "ons/london_age_20_29", + "kind": "ledger_only", + "ledger_value": 150082817.48999995, + "name": "dfi_ni.bus.passenger_receipts", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1585000.0, - "kind": "fixture_only", - "name": "ons/london_age_30_39", + "kind": "ledger_only", + "ledger_value": 3612036036.2194014, + "name": "dft.bus_fare_receipts.england", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1314000.0, - "kind": "fixture_only", - "name": "ons/london_age_40_49", + "kind": "ledger_only", + "ledger_value": 1347434943.01459, + "name": "dft.bus_fare_receipts.london", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1078000.0, - "kind": "fixture_only", - "name": "ons/london_age_50_59", + "kind": "ledger_only", + "ledger_value": 3024904320.8399997, + "name": "dft.bus_net_support.england", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 778000.0, - "kind": "fixture_only", - "name": "ons/london_age_60_69", + "kind": "ledger_only", + "ledger_value": 1130214000.0, + "name": "dft.bus_net_support.london", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 509000.0, - "kind": "fixture_only", - "name": "ons/london_age_70_79", + "kind": "ledger_only", + "ledger_value": 597920.0, + "name": "dwp.uc.two_child_limit.children_affected", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 304000.0, - "kind": "fixture_only", - "name": "ons/london_age_80_89", + "kind": "ledger_only", + "ledger_value": 235270.0, + "name": "dwp.uc.two_child_limit.children_claimant_pip", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 281000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_0_9", + "kind": "ledger_only", + "ledger_value": 479460.0, + "name": "dwp.uc.two_child_limit.children_disabled_child_element", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 311000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_10_19", + "kind": "ledger_only", + "ledger_value": 891930.0, + "name": "dwp.uc.two_child_limit.children_in_3_children_households", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 343000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_20_29", + "kind": "ledger_only", + "ledger_value": 468760.0, + "name": "dwp.uc.two_child_limit.children_in_4_children_households", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 356000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_30_39", + "kind": "ledger_only", + "ledger_value": 185120.0, + "name": "dwp.uc.two_child_limit.children_in_5_children_households", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 323000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_40_49", + "kind": "ledger_only", + "ledger_value": 119720.0, + "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 369000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_50_59", + "kind": "ledger_only", + "ledger_value": 1665540.0, + "name": "dwp.uc.two_child_limit.children_in_affected_households", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 353000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_60_69", + "kind": "ledger_only", + "ledger_value": 297310.0, + "name": "dwp.uc.two_child_limit.households_3_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 278000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_70_79", + "kind": "ledger_only", + "ledger_value": 117190.0, + "name": "dwp.uc.two_child_limit.households_4_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 153000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_80_89", + "kind": "ledger_only", + "ledger_value": 37020.0, + "name": "dwp.uc.two_child_limit.households_5_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 847000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_0_9", + "kind": "ledger_only", + "ledger_value": 18260.0, + "name": "dwp.uc.two_child_limit.households_6_plus_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 901000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_10_19", + "kind": "ledger_only", + "ledger_value": 469780.0, + "name": "dwp.uc.two_child_limit.households_affected", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 986000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_20_29", + "kind": "ledger_only", + "ledger_value": 65280.0, + "name": "dwp.uc.two_child_limit.households_claimant_pip", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1056000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_30_39", + "kind": "ledger_only", + "ledger_value": 129630.0, + "name": "dwp.uc.two_child_limit.households_disabled_child_element", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 938000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_40_49", + "kind": "ledger_only", + "ledger_value": 22503000000.0, + "name": "hmrc.cgt.liability_total", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "PR #889 adds HMRC FY2024-25 individuals-only liability of GBP 22,503,000,000 to the observed-year fit. The historical fixture has no equivalent liability row; this is a declared ledger-only observation, not a cash-receipts reconciliation." }, { - "fixture_value": 1011000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_50_59", + "kind": "ledger_only", + "ledger_value": 1800000000.0, + "name": "hmrc.salary_sacrifice.it_relief_additional_rate", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 888000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_60_69", + "kind": "ledger_only", + "ledger_value": 1600000000.0, + "name": "hmrc.salary_sacrifice.it_relief_basic_rate", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 715000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_70_79", + "kind": "ledger_only", + "ledger_value": 5500000000.0, + "name": "hmrc.salary_sacrifice.it_relief_higher_rate", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 399000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_80_89", + "kind": "ledger_only", + "ledger_value": 1151515.0, + "name": "hmrc.tfc.children_with_used_accounts", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 234000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_0_9", + "kind": "ledger_only", + "ledger_value": 599800000.0, + "name": "hmrc.tfc.government_top_up", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 244000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_10_19", + "kind": "ledger_only", + "ledger_value": 111700000.0, + "name": "nithc.public_transport_support", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 230000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_20_29", + "kind": "ledger_only", + "ledger_value": 14400000000.0, + "name": "obr.fuel_duties_cars", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 264000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_30_39", + "kind": "ledger_only", + "ledger_value": 43427000000.0, + "name": "ons.household_energy_expenditure", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 254000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_40_49", + "kind": "ledger_only", + "ledger_value": 414716.0, + "name": "ons.population.female_90_plus", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "María ruling 2026-08-21: new female 90_plus tail constrains ages 90+; the incumbent six-year terminal band left ages 91+ unconstrained." }, { - "fixture_value": 257000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_50_59", + "kind": "ledger_only", + "ledger_value": 210520.0, + "name": "ons.population.male_90_plus", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "María ruling 2026-08-21: new male 90_plus tail constrains ages 90+; the incumbent six-year terminal band left ages 91+ unconstrained." }, { - "fixture_value": 224000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_60_69", + "kind": "ledger_only", + "ledger_value": 21621100549.34064, + "name": "orr.rail_government_support", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 165000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_70_79", + "kind": "ledger_only", + "ledger_value": 499000000.0, + "name": "scotgov.bus.government_support", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 93000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_80_89", + "kind": "ledger_only", + "ledger_value": 391000000.0, + "name": "scotgov.bus.passenger_revenue", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 526000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_0_9", + "kind": "ledger_only", + "ledger_value": 131489970.0, + "name": "welshgov.bus.public_support", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 597000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_10_19", + "fixture_value": 999000.0, + "kind": "calibration_drift", + "ledger_value": 1000000.0, + "name": "dwp.esa_claimants", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 709000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_20_29", + "fixture_value": 6700000.0, + "kind": "calibration_drift", + "ledger_value": 6197311.0, + "name": "dwp.uc.households", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 736000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_30_39", + "fixture_value": 1222944.0, + "kind": "calibration_drift", + "ledger_value": 1190123.8333333333, + "name": "dwp.uc.households_children_1", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 691000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_40_49", + "fixture_value": 1058967.0, + "kind": "calibration_drift", + "ledger_value": 1049895.5, + "name": "dwp.uc.households_children_2", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 788000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_50_59", + "fixture_value": 473500.0, + "kind": "calibration_drift", + "ledger_value": 477887.6666666667, + "name": "dwp.uc.households_children_3", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 727000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_60_69", + "fixture_value": 166790.0, + "kind": "calibration_drift", + "ledger_value": 170713.66666666666, + "name": "dwp.uc.households_children_4", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 546000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_70_79", + "fixture_value": 75910.0, + "kind": "calibration_drift", + "ledger_value": 76320.08333333333, + "name": "dwp.uc.households_children_5_or_more", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 297000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_80_89", + "fixture_value": 231368.0, + "kind": "calibration_drift", + "ledger_value": 241130.91666666666, + "name": "dwp.uc.households_couple_no_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1039000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_0_9", + "fixture_value": 839379.0, + "kind": "calibration_drift", + "ledger_value": 826160.8333333334, + "name": "dwp.uc.households_couple_with_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1114000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_10_19", + "fixture_value": 2868011.0, + "kind": "calibration_drift", + "ledger_value": 2990070.1666666665, + "name": "dwp.uc.households_single_no_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1093000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_20_29", + "fixture_value": 2156879.0, + "kind": "calibration_drift", + "ledger_value": 2138780.1666666665, + "name": "dwp.uc.households_single_with_children", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1283000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_30_39", + "fixture_value": 14000.0, + "kind": "calibration_drift", + "ledger_value": 14333.222222222223, + "name": "dwp.uc.scotland_households_child_under_1", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 1273000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_40_49", + "fixture_value": 7610.0, + "kind": "calibration_drift", + "ledger_value": 7506.333333333333, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_0_to_1_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 1287000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_50_59", + "fixture_value": 12370.0, + "kind": "calibration_drift", + "ledger_value": 13313.333333333334, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_10_800_to_12_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 1089000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_60_69", + "fixture_value": 15175.0, + "kind": "calibration_drift", + "ledger_value": 16121.444444444445, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_12_000_to_13_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 927000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_70_79", + "fixture_value": 12297.0, + "kind": "calibration_drift", + "ledger_value": 13317.333333333334, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_13_200_to_14_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 559000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_80_89", + "fixture_value": 17828.0, + "kind": "calibration_drift", + "ledger_value": 19657.333333333332, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_14_400_to_15_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 576000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_0_9", + "fixture_value": 14427.0, + "kind": "calibration_drift", + "ledger_value": 16443.222222222223, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_15_600_to_16_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 646000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_10_19", + "fixture_value": 11892.0, + "kind": "calibration_drift", + "ledger_value": 13441.111111111111, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_16_800_to_18_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 694000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_20_29", + "fixture_value": 9463.0, + "kind": "calibration_drift", + "ledger_value": 10728.555555555555, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_18_000_to_19_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 743000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_30_39", + "fixture_value": 8443.0, + "kind": "calibration_drift", + "ledger_value": 9653.222222222223, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_19_200_to_20_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 704000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_40_49", + "fixture_value": 8906.0, + "kind": "calibration_drift", + "ledger_value": 8797.0, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_1_200_to_2_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 794000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_50_59", + "fixture_value": 5770.0, + "kind": "calibration_drift", + "ledger_value": 6486.888888888889, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_20_400_to_21_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 741000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_60_69", + "fixture_value": 3485.0, + "kind": "calibration_drift", + "ledger_value": 3981.8888888888887, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_21_600_to_22_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 662000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_70_79", + "fixture_value": 2360.0, + "kind": "calibration_drift", + "ledger_value": 2761.4444444444443, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_22_800_to_24_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 388000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_80_89", + "fixture_value": 1815.0, + "kind": "calibration_drift", + "ledger_value": 2131.222222222222, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_24_000_to_25_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 8374612.0, - "kind": "fixture_only", - "name": "ons/tenure_england_owned_outright", + "fixture_value": 1186.0, + "kind": "calibration_drift", + "ledger_value": 1475.3333333333333, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_25_200_to_26_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 7667051.0, - "kind": "fixture_only", - "name": "ons/tenure_england_owned_with_mortgage", + "fixture_value": 935.0, + "kind": "calibration_drift", + "ledger_value": 1073.7777777777778, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_26_400_to_27_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 5299840.0, - "kind": "fixture_only", - "name": "ons/tenure_england_rented_privately", + "fixture_value": 632.0, + "kind": "calibration_drift", + "ledger_value": 746.3333333333334, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_27_600_to_28_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 4274613.0, - "kind": "fixture_only", - "name": "ons/tenure_england_social_rent", + "fixture_value": 580.0, + "kind": "calibration_drift", + "ledger_value": 605.7777777777778, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_28_800_to_30_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 25616116.0, - "kind": "fixture_only", - "name": "ons/tenure_england_total", + "fixture_value": 11750.0, + "kind": "calibration_drift", + "ledger_value": 12256.0, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 325000.0, - "kind": "fixture_only", - "name": "ons/wales_age_0_9", + "fixture_value": 10802.0, + "kind": "calibration_drift", + "ledger_value": 10945.444444444445, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_3_600_to_4_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 362000.0, - "kind": "fixture_only", - "name": "ons/wales_age_10_19", + "fixture_value": 12168.0, + "kind": "calibration_drift", + "ledger_value": 12492.444444444445, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_4_800_to_6_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 389000.0, - "kind": "fixture_only", - "name": "ons/wales_age_20_29", + "fixture_value": 12461.0, + "kind": "calibration_drift", + "ledger_value": 12979.666666666666, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_6_000_to_7_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 408000.0, - "kind": "fixture_only", - "name": "ons/wales_age_30_39", + "fixture_value": 15787.0, + "kind": "calibration_drift", + "ledger_value": 16484.444444444445, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_7_200_to_8_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 374000.0, - "kind": "fixture_only", - "name": "ons/wales_age_40_49", + "fixture_value": 14248.0, + "kind": "calibration_drift", + "ledger_value": 15272.444444444445, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_8_400_to_9_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 432000.0, - "kind": "fixture_only", - "name": "ons/wales_age_50_59", + "fixture_value": 17559.0, + "kind": "calibration_drift", + "ledger_value": 19142.333333333332, + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_9_600_to_10_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 407000.0, - "kind": "fixture_only", - "name": "ons/wales_age_60_69", + "fixture_value": 18714.0, + "kind": "calibration_drift", + "ledger_value": 19073.555555555555, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 343000.0, - "kind": "fixture_only", - "name": "ons/wales_age_70_79", + "fixture_value": 42188.0, + "kind": "calibration_drift", + "ledger_value": 40805.444444444445, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 190000.0, - "kind": "fixture_only", - "name": "ons/wales_age_80_89", + "fixture_value": 41520.0, + "kind": "calibration_drift", + "ledger_value": 40009.555555555555, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_12_000_to_13_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 700000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_0_9", + "fixture_value": 41159.0, + "kind": "calibration_drift", + "ledger_value": 39972.555555555555, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_13_200_to_14_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 743000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_10_19", + "fixture_value": 42515.0, + "kind": "calibration_drift", + "ledger_value": 40518.77777777778, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_14_400_to_15_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 774000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_20_29", + "fixture_value": 38527.0, + "kind": "calibration_drift", + "ledger_value": 37118.0, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_15_600_to_16_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 834000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_30_39", + "fixture_value": 38894.0, + "kind": "calibration_drift", + "ledger_value": 37177.77777777778, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_16_800_to_18_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 758000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_40_49", + "fixture_value": 38659.0, + "kind": "calibration_drift", + "ledger_value": 37164.555555555555, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_18_000_to_19_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 800000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_50_59", + "fixture_value": 34318.0, + "kind": "calibration_drift", + "ledger_value": 33309.555555555555, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_19_200_to_20_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 685000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_60_69", + "fixture_value": 22489.0, + "kind": "calibration_drift", + "ledger_value": 22775.777777777777, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_1_200_to_2_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 570000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_70_79", + "fixture_value": 30116.0, + "kind": "calibration_drift", + "ledger_value": 29102.555555555555, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_20_400_to_21_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 337000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_80_89", + "fixture_value": 28519.0, + "kind": "calibration_drift", + "ledger_value": 27534.666666666668, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_21_600_to_22_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 618000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_0_9", + "fixture_value": 26014.0, + "kind": "calibration_drift", + "ledger_value": 25584.777777777777, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_22_800_to_24_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 666000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_10_19", + "fixture_value": 23159.0, + "kind": "calibration_drift", + "ledger_value": 22927.777777777777, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_24_000_to_25_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 733000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_20_29", + "fixture_value": 20618.0, + "kind": "calibration_drift", + "ledger_value": 20334.666666666668, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_25_200_to_26_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 764000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_30_39", + "fixture_value": 17493.0, + "kind": "calibration_drift", + "ledger_value": 17535.0, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_26_400_to_27_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 686000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_40_49", + "fixture_value": 15437.0, + "kind": "calibration_drift", + "ledger_value": 15399.888888888889, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_27_600_to_28_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 745000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_50_59", + "fixture_value": 12836.0, + "kind": "calibration_drift", + "ledger_value": 12836.222222222223, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 658000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_60_69", + "fixture_value": 26734.0, + "kind": "calibration_drift", + "ledger_value": 26502.666666666668, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_2_400_to_3_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 536000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_70_79", + "fixture_value": 29189.0, + "kind": "calibration_drift", + "ledger_value": 29027.0, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 302000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_80_89", + "fixture_value": 33137.0, + "kind": "calibration_drift", + "ledger_value": 32427.0, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 181700000.0, - "kind": "fixture_only", - "name": "slc/student_loan_repayment/northern_ireland", + "fixture_value": 35834.0, + "kind": "calibration_drift", + "ledger_value": 34956.88888888889, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_6_000_to_7_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 203300000.0, - "kind": "fixture_only", - "name": "slc/student_loan_repayment/scotland", + "fixture_value": 38338.0, + "kind": "calibration_drift", + "ledger_value": 37410.77777777778, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 229100000.0, - "kind": "fixture_only", - "name": "slc/student_loan_repayment/wales", + "fixture_value": 40685.0, + "kind": "calibration_drift", + "ledger_value": 39910.333333333336, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 804340.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/A", + "fixture_value": 40564.0, + "kind": "calibration_drift", + "ledger_value": 39368.0, + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 505610.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/B", + "fixture_value": 24639.0, + "kind": "calibration_drift", + "ledger_value": 26670.222222222223, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_0_to_1_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 403840.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/C", + "fixture_value": 126949.0, + "kind": "calibration_drift", + "ledger_value": 123718.11111111111, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_10_800_to_12_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 247850.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/D", + "fixture_value": 131129.0, + "kind": "calibration_drift", + "ledger_value": 125798.44444444444, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_12_000_to_13_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 154970.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/E", + "fixture_value": 131289.0, + "kind": "calibration_drift", + "ledger_value": 129133.66666666667, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_13_200_to_14_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 73920.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/F", + "fixture_value": 119355.0, + "kind": "calibration_drift", + "ledger_value": 115856.66666666667, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_14_400_to_15_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 39400.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/G", + "fixture_value": 130802.0, + "kind": "calibration_drift", + "ledger_value": 125660.22222222222, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_15_600_to_16_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 3480.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/H", + "fixture_value": 141848.0, + "kind": "calibration_drift", + "ledger_value": 135836.77777777778, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_16_800_to_18_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 2233400.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_MIDLANDS/total", + "fixture_value": 136835.0, + "kind": "calibration_drift", + "ledger_value": 135444.88888888888, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_18_000_to_19_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 403180.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/A", + "fixture_value": 107556.0, + "kind": "calibration_drift", + "ledger_value": 106341.88888888889, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_19_200_to_20_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 598950.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/B", + "fixture_value": 34670.0, + "kind": "calibration_drift", + "ledger_value": 36208.11111111111, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_1_200_to_2_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 739570.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/C", + "fixture_value": 86616.0, + "kind": "calibration_drift", + "ledger_value": 85490.44444444444, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_20_400_to_21_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 506540.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/D", + "fixture_value": 80294.0, + "kind": "calibration_drift", + "ledger_value": 80226.88888888889, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_21_600_to_22_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 313840.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/E", + "fixture_value": 70309.0, + "kind": "calibration_drift", + "ledger_value": 71259.55555555556, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_22_800_to_24_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 172960.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/F", + "fixture_value": 50510.0, + "kind": "calibration_drift", + "ledger_value": 51301.666666666664, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_24_000_to_25_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 113720.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/G", + "fixture_value": 42522.0, + "kind": "calibration_drift", + "ledger_value": 43305.22222222222, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_25_200_to_26_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 14830.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/H", + "fixture_value": 33508.0, + "kind": "calibration_drift", + "ledger_value": 34910.555555555555, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_26_400_to_27_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 2863600.0, - "kind": "fixture_only", - "name": "voa/council_tax/EAST_OF_ENGLAND/total", + "fixture_value": 27063.0, + "kind": "calibration_drift", + "ledger_value": 28513.0, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_27_600_to_28_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 144550.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/A", + "fixture_value": 21663.0, + "kind": "calibration_drift", + "ledger_value": 22593.0, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_28_800_to_30_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 499130.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/B", + "fixture_value": 43623.0, + "kind": "calibration_drift", + "ledger_value": 46312.77777777778, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_2_400_to_3_600", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 1040280.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/C", + "fixture_value": 55622.0, + "kind": "calibration_drift", + "ledger_value": 60310.11111111111, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_3_600_to_4_800", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 975750.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/D", + "fixture_value": 67901.0, + "kind": "calibration_drift", + "ledger_value": 67858.66666666667, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_4_800_to_6_000", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 585130.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/E", + "fixture_value": 89314.0, + "kind": "calibration_drift", + "ledger_value": 89577.44444444444, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_6_000_to_7_200", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 298920.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/F", + "fixture_value": 118641.0, + "kind": "calibration_drift", + "ledger_value": 116076.0, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_7_200_to_8_400", "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 225170.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 68500.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 3837430.0, - "kind": "fixture_only", - "name": "voa/council_tax/LONDON/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 667540.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/A", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 206790.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/B", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 196180.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/C", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 113460.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/D", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 61090.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/E", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 26600.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/F", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 14600.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1570.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1287830.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_EAST/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1386260.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/A", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 705450.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/B", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 616070.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/C", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 363970.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/D", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 216990.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/E", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 104330.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/F", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 65750.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 7350.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 3466140.0, - "kind": "fixture_only", - "name": "voa/council_tax/NORTH_WEST/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 367610.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/A", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 687430.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/B", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1075940.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/C", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 843560.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/D", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 551730.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/E", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 337260.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/F", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 265610.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 40390.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 4169520.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_EAST/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 473020.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/A", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 644890.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/B", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 624030.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/C", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 432070.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/D", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 292090.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/E", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 147920.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/F", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 81960.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 8430.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 2704390.0, - "kind": "fixture_only", - "name": "voa/council_tax/SOUTH_WEST/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 215380.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/A", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 307070.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/B", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 323220.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/C", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 241220.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/D", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 200840.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/E", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 122650.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/F", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 55190.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 13190.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1484410.0, - "kind": "fixture_only", - "name": "voa/council_tax/WALES/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 786010.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/A", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 654140.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/B", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 526260.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/C", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 302500.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/D", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 193700.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/E", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 105630.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/F", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 62780.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 6170.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 2637190.0, - "kind": "fixture_only", - "name": "voa/council_tax/WEST_MIDLANDS/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1070830.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/A", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 514190.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/B", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 432290.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/C", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 249530.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/D", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 158600.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/E", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 75690.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/F", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 42180.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/G", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 3770.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/H", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 2547080.0, - "kind": "fixture_only", - "name": "voa/council_tax/YORKSHIRE/total", - "period": 2025, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 95031.0, - "name": "dfe.funded_childcare.early_learning_2_year_olds", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 396965.0, - "name": "dfe.funded_childcare.universal_only_children", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 621482.0, - "name": "dfe.funded_childcare.working_parent_children_2_to_4", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 150082817.48999995, - "name": "dfi_ni.bus.passenger_receipts", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3612036036.2194014, - "name": "dft.bus_fare_receipts.england", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1347434943.01459, - "name": "dft.bus_fare_receipts.london", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3024904320.8399997, - "name": "dft.bus_net_support.england", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1130214000.0, - "name": "dft.bus_net_support.london", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 597920.0, - "name": "dwp.uc.two_child_limit.children_affected", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 235270.0, - "name": "dwp.uc.two_child_limit.children_claimant_pip", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 479460.0, - "name": "dwp.uc.two_child_limit.children_disabled_child_element", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 891930.0, - "name": "dwp.uc.two_child_limit.children_in_3_children_households", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 468760.0, - "name": "dwp.uc.two_child_limit.children_in_4_children_households", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 185120.0, - "name": "dwp.uc.two_child_limit.children_in_5_children_households", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 119720.0, - "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1665540.0, - "name": "dwp.uc.two_child_limit.children_in_affected_households", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 297310.0, - "name": "dwp.uc.two_child_limit.households_3_children", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 117190.0, - "name": "dwp.uc.two_child_limit.households_4_children", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 37020.0, - "name": "dwp.uc.two_child_limit.households_5_children", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 18260.0, - "name": "dwp.uc.two_child_limit.households_6_plus_children", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 469780.0, - "name": "dwp.uc.two_child_limit.households_affected", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 65280.0, - "name": "dwp.uc.two_child_limit.households_claimant_pip", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 129630.0, - "name": "dwp.uc.two_child_limit.households_disabled_child_element", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 22503000000.0, - "name": "hmrc.cgt.liability_total", - "period": 2025, - "reason": "PR #889 adds HMRC FY2024-25 individuals-only liability of GBP 22,503,000,000 to the observed-year fit. The historical fixture has no equivalent liability row; this is a declared ledger-only observation, not a cash-receipts reconciliation." - }, - { - "kind": "ledger_only", - "ledger_value": 1800000000.0, - "name": "hmrc.salary_sacrifice.it_relief_additional_rate", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1600000000.0, - "name": "hmrc.salary_sacrifice.it_relief_basic_rate", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 5500000000.0, - "name": "hmrc.salary_sacrifice.it_relief_higher_rate", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1151515.0, - "name": "hmrc.tfc.children_with_used_accounts", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 599800000.0, - "name": "hmrc.tfc.government_top_up", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 111700000.0, - "name": "nithc.public_transport_support", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 14400000000.0, - "name": "obr.fuel_duties_cars", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 43427000000.0, - "name": "ons.household_energy_expenditure", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 7553013.0, - "name": "ons.population.age_0_9_by_region", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 8331437.0, - "name": "ons.population.age_10_19_by_region", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 8715225.0, - "name": "ons.population.age_20_29_by_region", + "fixture_value": 99069.0, + "kind": "calibration_drift", + "ledger_value": 97511.0, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_8_400_to_9_600", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 9572397.0, - "name": "ons.population.age_30_39_by_region", + "fixture_value": 102251.0, + "kind": "calibration_drift", + "ledger_value": 102343.0, + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_9_600_to_10_800", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 8622506.0, - "name": "ons.population.age_40_49_by_region", + "fixture_value": 102312.0, + "kind": "calibration_drift", + "ledger_value": 89479.33333333333, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_0_to_1_200", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 9036816.0, - "name": "ons.population.age_50_59_by_region", + "fixture_value": 95698.0, + "kind": "calibration_drift", + "ledger_value": 104891.11111111111, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_10_800_to_12_000", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 7861034.0, - "name": "ons.population.age_60_69_by_region", + "fixture_value": 106663.0, + "kind": "calibration_drift", + "ledger_value": 122035.55555555556, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_12_000_to_13_200", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 5998605.0, - "name": "ons.population.age_70_79_by_region", + "fixture_value": 181180.0, + "kind": "calibration_drift", + "ledger_value": 197163.22222222222, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_13_200_to_14_400", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 2965168.0, - "name": "ons.population.age_80_89_by_region", + "fixture_value": 189861.0, + "kind": "calibration_drift", + "ledger_value": 209497.33333333334, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_14_400_to_15_600", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 414716.0, - "name": "ons.population.female_90_plus", + "fixture_value": 129174.0, + "kind": "calibration_drift", + "ledger_value": 149963.22222222222, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_15_600_to_16_800", "period": 2025, - "reason": "María ruling 2026-08-21: new female 90_plus tail constrains ages 90+; the incumbent six-year terminal band left ages 91+ unconstrained." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 210520.0, - "name": "ons.population.male_90_plus", + "fixture_value": 84690.0, + "kind": "calibration_drift", + "ledger_value": 108689.66666666667, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_16_800_to_18_000", "period": 2025, - "reason": "María ruling 2026-08-21: new male 90_plus tail constrains ages 90+; the incumbent six-year terminal band left ages 91+ unconstrained." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 21621100549.34064, - "name": "orr.rail_government_support", + "fixture_value": 46244.0, + "kind": "calibration_drift", + "ledger_value": 61718.666666666664, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_18_000_to_19_200", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 499000000.0, - "name": "scotgov.bus.government_support", + "fixture_value": 26481.0, + "kind": "calibration_drift", + "ledger_value": 34050.444444444445, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_19_200_to_20_400", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 391000000.0, - "name": "scotgov.bus.passenger_revenue", + "fixture_value": 120819.0, + "kind": "calibration_drift", + "ledger_value": 127403.22222222222, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_1_200_to_2_400", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 6103320.0, - "name": "voa.council_tax_stock.band_a", + "fixture_value": 18143.0, + "kind": "calibration_drift", + "ledger_value": 22338.333333333332, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_20_400_to_21_600", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 5016580.0, - "name": "voa.council_tax_stock.band_b", + "fixture_value": 12325.0, + "kind": "calibration_drift", + "ledger_value": 14685.777777777777, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_21_600_to_22_800", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 5654450.0, - "name": "voa.council_tax_stock.band_c", + "fixture_value": 9555.0, + "kind": "calibration_drift", + "ledger_value": 11133.666666666666, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_22_800_to_24_000", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 4035220.0, - "name": "voa.council_tax_stock.band_d", + "fixture_value": 6230.0, + "kind": "calibration_drift", + "ledger_value": 6951.222222222223, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_24_000_to_25_200", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 2528140.0, - "name": "voa.council_tax_stock.band_e", + "fixture_value": 5884.0, + "kind": "calibration_drift", + "ledger_value": 6508.222222222223, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_25_200_to_26_400", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 1343220.0, - "name": "voa.council_tax_stock.band_f", + "fixture_value": 5362.0, + "kind": "calibration_drift", + "ledger_value": 5913.444444444444, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_26_400_to_27_600", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 911160.0, - "name": "voa.council_tax_stock.band_g", + "fixture_value": 1786.0, + "kind": "calibration_drift", + "ledger_value": 1884.111111111111, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_27_600_to_28_800", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 154470.0, - "name": "voa.council_tax_stock.band_h", + "fixture_value": 1491.0, + "kind": "calibration_drift", + "ledger_value": 1653.7777777777778, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_28_800_to_30_000", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 25746570.0, - "name": "voa.council_tax_stock.total", + "fixture_value": 173925.0, + "kind": "calibration_drift", + "ledger_value": 197136.66666666666, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_2_400_to_3_600", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 131489970.0, - "name": "welshgov.bus.public_support", + "fixture_value": 375706.0, + "kind": "calibration_drift", + "ledger_value": 377063.1111111111, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_3_600_to_4_800", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 999000.0, + "fixture_value": 200713.0, "kind": "calibration_drift", - "ledger_value": 1000000.0, - "name": "dwp.esa_claimants", + "ledger_value": 195983.22222222222, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_4_800_to_6_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 6700000.0, + "fixture_value": 107860.0, "kind": "calibration_drift", - "ledger_value": 6197311.0, - "name": "dwp.uc.households", + "ledger_value": 114033.33333333333, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_6_000_to_7_200", "period": 2025, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 1222944.0, + "fixture_value": 144036.0, "kind": "calibration_drift", - "ledger_value": 1190123.8333333333, - "name": "dwp.uc.households_children_1", + "ledger_value": 149043.77777777778, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_7_200_to_8_400", "period": 2025, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 1058967.0, + "fixture_value": 377221.0, "kind": "calibration_drift", - "ledger_value": 1049895.5, - "name": "dwp.uc.households_children_2", + "ledger_value": 399750.22222222225, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_8_400_to_9_600", "period": 2025, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 473500.0, + "fixture_value": 341138.0, "kind": "calibration_drift", - "ledger_value": 477887.6666666667, - "name": "dwp.uc.households_children_3", + "ledger_value": 386411.6666666667, + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_9_600_to_10_800", "period": 2025, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 166790.0, + "fixture_value": 67727478991.59665, "kind": "calibration_drift", - "ledger_value": 170713.66666666666, - "name": "dwp.uc.households_children_4", + "ledger_value": 119258000000.0, + "name": "hmrc.cgt.gains_total", "period": 2025, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "PR #889 selects HMRC FY2024-25 individuals-only observed gains of GBP 119,258,000,000, measured in 2024 at calibration index 2025. The frozen incumbent fixture retains its historical forecast/uprated GBP 67,727,478,991.60 value. This explicit observation-year and population-scope change does not rewrite the historical fixture." }, { - "fixture_value": 75910.0, + "fixture_value": 378000.0, "kind": "calibration_drift", - "ledger_value": 76320.08333333333, - "name": "dwp.uc.households_children_5_or_more", + "ledger_value": 551000.0, + "name": "hmrc.cgt.taxpayers_total", "period": 2025, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "PR #889 selects the HMRC FY2024-25 individuals-only observation of 551,000 taxpayers, measured in 2024 at calibration index 2025. The frozen incumbent fixture retains its historical 378,000 count." }, { - "fixture_value": 231368.0, + "fixture_value": 1236000000.0, "kind": "calibration_drift", - "ledger_value": 241130.91666666666, - "name": "dwp.uc.households_couple_no_children", + "ledger_value": 1000000000.0, + "name": "hmrc.salary_sacrifice.nics_relief_employee", "period": 2025, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 839379.0, + "fixture_value": 2987000000.0, "kind": "calibration_drift", - "ledger_value": 826160.8333333334, - "name": "dwp.uc.households_couple_with_children", + "ledger_value": 3400000000.0, + "name": "hmrc.salary_sacrifice.nics_relief_employer", "period": 2025, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 2868011.0, + "fixture_value": 3379200.0, "kind": "calibration_drift", - "ledger_value": 2990070.1666666665, - "name": "dwp.uc.households_single_no_children", + "ledger_value": 3300000.0, + "name": "hmrc.salary_sacrifice.users_above_cap", "period": 2025, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 2156879.0, + "fixture_value": 4403200.0, "kind": "calibration_drift", - "ledger_value": 2138780.1666666665, - "name": "dwp.uc.households_single_with_children", + "ledger_value": 4300000.0, + "name": "hmrc.salary_sacrifice.users_below_cap", "period": 2025, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2025 incumbent baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 14000.0, + "fixture_value": 7884800.0, "kind": "calibration_drift", - "ledger_value": 14333.222222222223, - "name": "dwp.uc.scotland_households_child_under_1", + "ledger_value": 7700000.0, + "name": "hmrc.salary_sacrifice.users_total", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 7610.0, + "fixture_value": 557000.0, "kind": "calibration_drift", - "ledger_value": 7506.333333333333, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_0_to_1_200", + "ledger_value": 556551.0, + "name": "isc.private_school_students", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 12370.0, + "fixture_value": 2057128451236.5015, "kind": "calibration_drift", - "ledger_value": 13313.333333333334, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_10_800_to_12_000", + "ledger_value": 2103053000000.0, + "name": "ons.land.corporate_land_value", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 15175.0, + "fixture_value": 5042871548763.499, "kind": "calibration_drift", - "ledger_value": 16121.444444444445, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_12_000_to_13_200", + "ledger_value": 4559831000000.0, + "name": "ons.land.household_land_value", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 12297.0, + "fixture_value": 7100000000000.0, "kind": "calibration_drift", - "ledger_value": 13317.333333333334, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_13_200_to_14_400", + "ledger_value": 7117771000000.0, + "name": "ons.land.land_value", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "fixture_value": 17828.0, + "fixture_value": 281000.0, "kind": "calibration_drift", - "ledger_value": 19657.333333333332, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_14_400_to_15_600", + "ledger_value": 285165.0, + "name": "ons.population.age_0_9_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 14427.0, + "fixture_value": 847000.0, "kind": "calibration_drift", - "ledger_value": 16443.222222222223, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_15_600_to_16_800", + "ledger_value": 865892.0, + "name": "ons.population.age_0_9_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 11892.0, + "fixture_value": 618000.0, "kind": "calibration_drift", - "ledger_value": 13441.111111111111, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_16_800_to_18_000", + "ledger_value": 626938.0, + "name": "ons.population.age_0_9_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 9463.0, + "fixture_value": 532000.0, "kind": "calibration_drift", - "ledger_value": 10728.555555555555, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_18_000_to_19_200", + "ledger_value": 543004.0, + "name": "ons.population.age_0_9_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 8443.0, + "fixture_value": 700000.0, "kind": "calibration_drift", - "ledger_value": 9653.222222222223, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_19_200_to_20_400", + "ledger_value": 718837.0, + "name": "ons.population.age_0_9_by_region@E12000005", + "period": 2025, + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." + }, + { + "fixture_value": 726000.0, + "kind": "calibration_drift", + "ledger_value": 744698.0, + "name": "ons.population.age_0_9_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 8906.0, + "fixture_value": 1042000.0, "kind": "calibration_drift", - "ledger_value": 8797.0, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_1_200_to_2_400", + "ledger_value": 1054493.0, + "name": "ons.population.age_0_9_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 5770.0, + "fixture_value": 1039000.0, "kind": "calibration_drift", - "ledger_value": 6486.888888888889, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_20_400_to_21_600", + "ledger_value": 1059434.0, + "name": "ons.population.age_0_9_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 3485.0, + "fixture_value": 576000.0, "kind": "calibration_drift", - "ledger_value": 3981.8888888888887, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_21_600_to_22_800", + "ledger_value": 575506.0, + "name": "ons.population.age_0_9_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 2360.0, + "fixture_value": 234000.0, "kind": "calibration_drift", - "ledger_value": 2761.4444444444443, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_22_800_to_24_000", + "ledger_value": 229505.0, + "name": "ons.population.age_0_9_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 1815.0, + "fixture_value": 526000.0, "kind": "calibration_drift", - "ledger_value": 2131.222222222222, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_24_000_to_25_200", + "ledger_value": 527989.0, + "name": "ons.population.age_0_9_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 1186.0, + "fixture_value": 325000.0, "kind": "calibration_drift", - "ledger_value": 1475.3333333333333, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_25_200_to_26_400", + "ledger_value": 321552.0, + "name": "ons.population.age_0_9_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 935.0, + "fixture_value": 311000.0, "kind": "calibration_drift", - "ledger_value": 1073.7777777777778, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_26_400_to_27_600", + "ledger_value": 326306.0, + "name": "ons.population.age_10_19_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 632.0, + "fixture_value": 901000.0, "kind": "calibration_drift", - "ledger_value": 746.3333333333334, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_27_600_to_28_800", + "ledger_value": 952864.0, + "name": "ons.population.age_10_19_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 580.0, + "fixture_value": 666000.0, "kind": "calibration_drift", - "ledger_value": 605.7777777777778, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_28_800_to_30_000", + "ledger_value": 696780.0, + "name": "ons.population.age_10_19_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 11750.0, + "fixture_value": 585000.0, "kind": "calibration_drift", - "ledger_value": 12256.0, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", + "ledger_value": 615630.0, + "name": "ons.population.age_10_19_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 10802.0, + "fixture_value": 743000.0, "kind": "calibration_drift", - "ledger_value": 10945.444444444445, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_3_600_to_4_800", + "ledger_value": 785062.0, + "name": "ons.population.age_10_19_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 12168.0, + "fixture_value": 741000.0, "kind": "calibration_drift", - "ledger_value": 12492.444444444445, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_4_800_to_6_000", + "ledger_value": 785091.0, + "name": "ons.population.age_10_19_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 12461.0, + "fixture_value": 1038000.0, "kind": "calibration_drift", - "ledger_value": 12979.666666666666, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_6_000_to_7_200", + "ledger_value": 1068691.0, + "name": "ons.population.age_10_19_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 15787.0, + "fixture_value": 1114000.0, "kind": "calibration_drift", - "ledger_value": 16484.444444444445, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_7_200_to_8_400", + "ledger_value": 1183235.0, + "name": "ons.population.age_10_19_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 14248.0, + "fixture_value": 646000.0, "kind": "calibration_drift", - "ledger_value": 15272.444444444445, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_8_400_to_9_600", + "ledger_value": 677228.0, + "name": "ons.population.age_10_19_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 17559.0, + "fixture_value": 244000.0, "kind": "calibration_drift", - "ledger_value": 19142.333333333332, - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_9_600_to_10_800", + "ledger_value": 252764.0, + "name": "ons.population.age_10_19_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 18714.0, + "fixture_value": 597000.0, "kind": "calibration_drift", - "ledger_value": 19073.555555555555, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", + "ledger_value": 612935.0, + "name": "ons.population.age_10_19_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 42188.0, + "fixture_value": 362000.0, "kind": "calibration_drift", - "ledger_value": 40805.444444444445, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", + "ledger_value": 374851.0, + "name": "ons.population.age_10_19_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 41520.0, + "fixture_value": 343000.0, "kind": "calibration_drift", - "ledger_value": 40009.555555555555, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_12_000_to_13_200", + "ledger_value": 343015.0, + "name": "ons.population.age_20_29_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 41159.0, + "fixture_value": 986000.0, "kind": "calibration_drift", - "ledger_value": 39972.555555555555, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_13_200_to_14_400", + "ledger_value": 986590.0, + "name": "ons.population.age_20_29_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 42515.0, + "fixture_value": 733000.0, "kind": "calibration_drift", - "ledger_value": 40518.77777777778, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_14_400_to_15_600", + "ledger_value": 717479.0, + "name": "ons.population.age_20_29_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 38527.0, + "fixture_value": 632000.0, "kind": "calibration_drift", - "ledger_value": 37118.0, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_15_600_to_16_800", + "ledger_value": 612108.0, + "name": "ons.population.age_20_29_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 38894.0, + "fixture_value": 774000.0, "kind": "calibration_drift", - "ledger_value": 37177.77777777778, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_16_800_to_18_000", + "ledger_value": 766058.0, + "name": "ons.population.age_20_29_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 38659.0, + "fixture_value": 749000.0, "kind": "calibration_drift", - "ledger_value": 37164.555555555555, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_18_000_to_19_200", + "ledger_value": 727218.0, + "name": "ons.population.age_20_29_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 34318.0, + "fixture_value": 1470000.0, "kind": "calibration_drift", - "ledger_value": 33309.555555555555, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_19_200_to_20_400", + "ledger_value": 1508607.0, + "name": "ons.population.age_20_29_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 22489.0, + "fixture_value": 1093000.0, "kind": "calibration_drift", - "ledger_value": 22775.777777777777, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_1_200_to_2_400", + "ledger_value": 1066121.0, + "name": "ons.population.age_20_29_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 30116.0, + "fixture_value": 694000.0, "kind": "calibration_drift", - "ledger_value": 29102.555555555555, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_20_400_to_21_600", + "ledger_value": 684393.0, + "name": "ons.population.age_20_29_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 28519.0, + "fixture_value": 230000.0, "kind": "calibration_drift", - "ledger_value": 27534.666666666668, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_21_600_to_22_800", + "ledger_value": 219525.0, + "name": "ons.population.age_20_29_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 26014.0, + "fixture_value": 709000.0, "kind": "calibration_drift", - "ledger_value": 25584.777777777777, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_22_800_to_24_000", + "ledger_value": 703554.0, + "name": "ons.population.age_20_29_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 23159.0, + "fixture_value": 389000.0, "kind": "calibration_drift", - "ledger_value": 22927.777777777777, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_24_000_to_25_200", + "ledger_value": 380557.0, + "name": "ons.population.age_20_29_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 20618.0, + "fixture_value": 356000.0, "kind": "calibration_drift", - "ledger_value": 20334.666666666668, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_25_200_to_26_400", + "ledger_value": 363357.0, + "name": "ons.population.age_30_39_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 17493.0, + "fixture_value": 1056000.0, "kind": "calibration_drift", - "ledger_value": 17535.0, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_26_400_to_27_600", + "ledger_value": 1064968.0, + "name": "ons.population.age_30_39_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 15437.0, + "fixture_value": 764000.0, "kind": "calibration_drift", - "ledger_value": 15399.888888888889, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_27_600_to_28_800", + "ledger_value": 770809.0, + "name": "ons.population.age_30_39_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 12836.0, + "fixture_value": 669000.0, "kind": "calibration_drift", - "ledger_value": 12836.222222222223, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", + "ledger_value": 676709.0, + "name": "ons.population.age_30_39_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 26734.0, + "fixture_value": 834000.0, "kind": "calibration_drift", - "ledger_value": 26502.666666666668, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_2_400_to_3_600", + "ledger_value": 839114.0, + "name": "ons.population.age_30_39_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 29189.0, + "fixture_value": 890000.0, "kind": "calibration_drift", - "ledger_value": 29027.0, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", + "ledger_value": 895639.0, + "name": "ons.population.age_30_39_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 33137.0, + "fixture_value": 1585000.0, "kind": "calibration_drift", - "ledger_value": 32427.0, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", + "ledger_value": 1537372.0, + "name": "ons.population.age_30_39_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 35834.0, + "fixture_value": 1283000.0, "kind": "calibration_drift", - "ledger_value": 34956.88888888889, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_6_000_to_7_200", + "ledger_value": 1284552.0, + "name": "ons.population.age_30_39_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 38338.0, + "fixture_value": 743000.0, "kind": "calibration_drift", - "ledger_value": 37410.77777777778, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", + "ledger_value": 742082.0, + "name": "ons.population.age_30_39_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 40685.0, + "fixture_value": 264000.0, "kind": "calibration_drift", - "ledger_value": 39910.333333333336, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", + "ledger_value": 254067.0, + "name": "ons.population.age_30_39_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 40564.0, + "fixture_value": 736000.0, "kind": "calibration_drift", - "ledger_value": 39368.0, - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", + "ledger_value": 733480.0, + "name": "ons.population.age_30_39_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 24639.0, + "fixture_value": 408000.0, "kind": "calibration_drift", - "ledger_value": 26670.222222222223, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_0_to_1_200", + "ledger_value": 410248.0, + "name": "ons.population.age_30_39_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 126949.0, + "fixture_value": 323000.0, "kind": "calibration_drift", - "ledger_value": 123718.11111111111, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_10_800_to_12_000", + "ledger_value": 320860.0, + "name": "ons.population.age_40_49_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 131129.0, + "fixture_value": 938000.0, "kind": "calibration_drift", - "ledger_value": 125798.44444444444, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_12_000_to_13_200", + "ledger_value": 930967.0, + "name": "ons.population.age_40_49_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 131289.0, + "fixture_value": 686000.0, "kind": "calibration_drift", - "ledger_value": 129133.66666666667, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_13_200_to_14_400", + "ledger_value": 674349.0, + "name": "ons.population.age_40_49_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 119355.0, + "fixture_value": 621000.0, "kind": "calibration_drift", - "ledger_value": 115856.66666666667, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_14_400_to_15_600", + "ledger_value": 610611.0, + "name": "ons.population.age_40_49_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 130802.0, + "fixture_value": 758000.0, "kind": "calibration_drift", - "ledger_value": 125660.22222222222, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_15_600_to_16_800", + "ledger_value": 746341.0, + "name": "ons.population.age_40_49_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 141848.0, + "fixture_value": 851000.0, "kind": "calibration_drift", - "ledger_value": 135836.77777777778, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_16_800_to_18_000", + "ledger_value": 838578.0, + "name": "ons.population.age_40_49_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 136835.0, + "fixture_value": 1314000.0, "kind": "calibration_drift", - "ledger_value": 135444.88888888888, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_18_000_to_19_200", + "ledger_value": 1268973.0, + "name": "ons.population.age_40_49_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 107556.0, + "fixture_value": 1273000.0, "kind": "calibration_drift", - "ledger_value": 106341.88888888889, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_19_200_to_20_400", + "ledger_value": 1255951.0, + "name": "ons.population.age_40_49_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 34670.0, + "fixture_value": 704000.0, "kind": "calibration_drift", - "ledger_value": 36208.11111111111, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_1_200_to_2_400", + "ledger_value": 688417.0, + "name": "ons.population.age_40_49_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 86616.0, + "fixture_value": 254000.0, "kind": "calibration_drift", - "ledger_value": 85490.44444444444, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_20_400_to_21_600", + "ledger_value": 246140.0, + "name": "ons.population.age_40_49_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 80294.0, + "fixture_value": 691000.0, "kind": "calibration_drift", - "ledger_value": 80226.88888888889, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_21_600_to_22_800", + "ledger_value": 675368.0, + "name": "ons.population.age_40_49_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 70309.0, + "fixture_value": 374000.0, "kind": "calibration_drift", - "ledger_value": 71259.55555555556, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_22_800_to_24_000", + "ledger_value": 365951.0, + "name": "ons.population.age_40_49_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 50510.0, + "fixture_value": 369000.0, "kind": "calibration_drift", - "ledger_value": 51301.666666666664, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_24_000_to_25_200", + "ledger_value": 360074.0, + "name": "ons.population.age_50_59_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 42522.0, + "fixture_value": 1011000.0, "kind": "calibration_drift", - "ledger_value": 43305.22222222222, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_25_200_to_26_400", + "ledger_value": 995810.0, + "name": "ons.population.age_50_59_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 33508.0, + "fixture_value": 745000.0, "kind": "calibration_drift", - "ledger_value": 34910.555555555555, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_26_400_to_27_600", + "ledger_value": 736903.0, + "name": "ons.population.age_50_59_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 27063.0, + "fixture_value": 681000.0, "kind": "calibration_drift", - "ledger_value": 28513.0, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_27_600_to_28_800", + "ledger_value": 676307.0, + "name": "ons.population.age_50_59_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 21663.0, + "fixture_value": 800000.0, "kind": "calibration_drift", - "ledger_value": 22593.0, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_28_800_to_30_000", + "ledger_value": 794143.0, + "name": "ons.population.age_50_59_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 43623.0, + "fixture_value": 867000.0, "kind": "calibration_drift", - "ledger_value": 46312.77777777778, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_2_400_to_3_600", + "ledger_value": 866946.0, + "name": "ons.population.age_50_59_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 55622.0, + "fixture_value": 1078000.0, "kind": "calibration_drift", - "ledger_value": 60310.11111111111, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_3_600_to_4_800", + "ledger_value": 1087518.0, + "name": "ons.population.age_50_59_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 67901.0, + "fixture_value": 1287000.0, "kind": "calibration_drift", - "ledger_value": 67858.66666666667, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_4_800_to_6_000", + "ledger_value": 1287719.0, + "name": "ons.population.age_50_59_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 89314.0, + "fixture_value": 794000.0, "kind": "calibration_drift", - "ledger_value": 89577.44444444444, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_6_000_to_7_200", + "ledger_value": 784718.0, + "name": "ons.population.age_50_59_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 118641.0, + "fixture_value": 257000.0, "kind": "calibration_drift", - "ledger_value": 116076.0, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_7_200_to_8_400", + "ledger_value": 255269.0, + "name": "ons.population.age_50_59_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 99069.0, + "fixture_value": 788000.0, "kind": "calibration_drift", - "ledger_value": 97511.0, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_8_400_to_9_600", + "ledger_value": 766715.0, + "name": "ons.population.age_50_59_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 102251.0, + "fixture_value": 432000.0, "kind": "calibration_drift", - "ledger_value": 102343.0, - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_9_600_to_10_800", + "ledger_value": 424694.0, + "name": "ons.population.age_50_59_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 102312.0, + "fixture_value": 353000.0, "kind": "calibration_drift", - "ledger_value": 89479.33333333333, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_0_to_1_200", + "ledger_value": 349719.0, + "name": "ons.population.age_60_69_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 95698.0, + "fixture_value": 888000.0, "kind": "calibration_drift", - "ledger_value": 104891.11111111111, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_10_800_to_12_000", + "ledger_value": 884043.0, + "name": "ons.population.age_60_69_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 106663.0, + "fixture_value": 658000.0, "kind": "calibration_drift", - "ledger_value": 122035.55555555556, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_12_000_to_13_200", + "ledger_value": 652931.0, + "name": "ons.population.age_60_69_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 181180.0, + "fixture_value": 592000.0, "kind": "calibration_drift", - "ledger_value": 197163.22222222222, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_13_200_to_14_400", + "ledger_value": 591429.0, + "name": "ons.population.age_60_69_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 189861.0, + "fixture_value": 685000.0, "kind": "calibration_drift", - "ledger_value": 209497.33333333334, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_14_400_to_15_600", + "ledger_value": 677922.0, + "name": "ons.population.age_60_69_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 129174.0, + "fixture_value": 746000.0, "kind": "calibration_drift", - "ledger_value": 149963.22222222222, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_15_600_to_16_800", + "ledger_value": 744651.0, + "name": "ons.population.age_60_69_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 84690.0, + "fixture_value": 778000.0, "kind": "calibration_drift", - "ledger_value": 108689.66666666667, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_16_800_to_18_000", + "ledger_value": 787666.0, + "name": "ons.population.age_60_69_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 46244.0, + "fixture_value": 1089000.0, "kind": "calibration_drift", - "ledger_value": 61718.666666666664, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_18_000_to_19_200", + "ledger_value": 1089421.0, + "name": "ons.population.age_60_69_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 26481.0, + "fixture_value": 741000.0, "kind": "calibration_drift", - "ledger_value": 34050.444444444445, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_19_200_to_20_400", + "ledger_value": 736639.0, + "name": "ons.population.age_60_69_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 120819.0, + "fixture_value": 224000.0, "kind": "calibration_drift", - "ledger_value": 127403.22222222222, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_1_200_to_2_400", + "ledger_value": 223111.0, + "name": "ons.population.age_60_69_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 18143.0, + "fixture_value": 727000.0, "kind": "calibration_drift", - "ledger_value": 22338.333333333332, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_20_400_to_21_600", + "ledger_value": 721727.0, + "name": "ons.population.age_60_69_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 12325.0, + "fixture_value": 407000.0, "kind": "calibration_drift", - "ledger_value": 14685.777777777777, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_21_600_to_22_800", + "ledger_value": 401775.0, + "name": "ons.population.age_60_69_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 9555.0, + "fixture_value": 278000.0, "kind": "calibration_drift", - "ledger_value": 11133.666666666666, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_22_800_to_24_000", + "ledger_value": 265573.0, + "name": "ons.population.age_70_79_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 6230.0, + "fixture_value": 715000.0, "kind": "calibration_drift", - "ledger_value": 6951.222222222223, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_24_000_to_25_200", + "ledger_value": 669277.0, + "name": "ons.population.age_70_79_by_region@E12000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 5884.0, + "fixture_value": 536000.0, "kind": "calibration_drift", - "ledger_value": 6508.222222222223, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_25_200_to_26_400", + "ledger_value": 504131.0, + "name": "ons.population.age_70_79_by_region@E12000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 5362.0, + "fixture_value": 500000.0, "kind": "calibration_drift", - "ledger_value": 5913.444444444444, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_26_400_to_27_600", + "ledger_value": 466530.0, + "name": "ons.population.age_70_79_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 1786.0, + "fixture_value": 570000.0, "kind": "calibration_drift", - "ledger_value": 1884.111111111111, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_27_600_to_28_800", + "ledger_value": 528207.0, + "name": "ons.population.age_70_79_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 1491.0, + "fixture_value": 643000.0, "kind": "calibration_drift", - "ledger_value": 1653.7777777777778, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_28_800_to_30_000", + "ledger_value": 599882.0, + "name": "ons.population.age_70_79_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 173925.0, + "fixture_value": 509000.0, "kind": "calibration_drift", - "ledger_value": 197136.66666666666, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_2_400_to_3_600", + "ledger_value": 485057.0, + "name": "ons.population.age_70_79_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 375706.0, + "fixture_value": 927000.0, "kind": "calibration_drift", - "ledger_value": 377063.1111111111, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_3_600_to_4_800", + "ledger_value": 865392.0, + "name": "ons.population.age_70_79_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 200713.0, + "fixture_value": 662000.0, "kind": "calibration_drift", - "ledger_value": 195983.22222222222, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_4_800_to_6_000", + "ledger_value": 618254.0, + "name": "ons.population.age_70_79_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 107860.0, + "fixture_value": 165000.0, "kind": "calibration_drift", - "ledger_value": 114033.33333333333, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_6_000_to_7_200", + "ledger_value": 155382.0, + "name": "ons.population.age_70_79_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 144036.0, + "fixture_value": 546000.0, "kind": "calibration_drift", - "ledger_value": 149043.77777777778, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_7_200_to_8_400", + "ledger_value": 519252.0, + "name": "ons.population.age_70_79_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 377221.0, + "fixture_value": 343000.0, "kind": "calibration_drift", - "ledger_value": 399750.22222222225, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_8_400_to_9_600", + "ledger_value": 321668.0, + "name": "ons.population.age_70_79_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 341138.0, + "fixture_value": 153000.0, "kind": "calibration_drift", - "ledger_value": 386411.6666666667, - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_9_600_to_10_800", + "ledger_value": 122118.0, + "name": "ons.population.age_80_89_by_region@E12000001", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 67727478991.59665, + "fixture_value": 399000.0, "kind": "calibration_drift", - "ledger_value": 119258000000.0, - "name": "hmrc.cgt.gains_total", + "ledger_value": 324141.0, + "name": "ons.population.age_80_89_by_region@E12000002", "period": 2025, - "reason": "PR #889 selects HMRC FY2024-25 individuals-only observed gains of GBP 119,258,000,000, measured in 2024 at calibration index 2025. The frozen incumbent fixture retains its historical forecast/uprated GBP 67,727,478,991.60 value. This explicit observation-year and population-scope change does not rewrite the historical fixture." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 378000.0, + "fixture_value": 302000.0, "kind": "calibration_drift", - "ledger_value": 551000.0, - "name": "hmrc.cgt.taxpayers_total", + "ledger_value": 243274.0, + "name": "ons.population.age_80_89_by_region@E12000003", "period": 2025, - "reason": "PR #889 selects the HMRC FY2024-25 individuals-only observation of 551,000 taxpayers, measured in 2024 at calibration index 2025. The frozen incumbent fixture retains its historical 378,000 count." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 1236000000.0, + "fixture_value": 273000.0, "kind": "calibration_drift", - "ledger_value": 1000000000.0, - "name": "hmrc.salary_sacrifice.nics_relief_employee", + "ledger_value": 225626.0, + "name": "ons.population.age_80_89_by_region@E12000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 2987000000.0, + "fixture_value": 337000.0, "kind": "calibration_drift", - "ledger_value": 3400000000.0, - "name": "hmrc.salary_sacrifice.nics_relief_employer", + "ledger_value": 275030.0, + "name": "ons.population.age_80_89_by_region@E12000005", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 3379200.0, + "fixture_value": 379000.0, "kind": "calibration_drift", - "ledger_value": 3300000.0, - "name": "hmrc.salary_sacrifice.users_above_cap", + "ledger_value": 305691.0, + "name": "ons.population.age_80_89_by_region@E12000006", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 4403200.0, + "fixture_value": 304000.0, "kind": "calibration_drift", - "ledger_value": 4300000.0, - "name": "hmrc.salary_sacrifice.users_below_cap", + "ledger_value": 237061.0, + "name": "ons.population.age_80_89_by_region@E12000007", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 7884800.0, + "fixture_value": 559000.0, "kind": "calibration_drift", - "ledger_value": 7700000.0, - "name": "hmrc.salary_sacrifice.users_total", + "ledger_value": 447958.0, + "name": "ons.population.age_80_89_by_region@E12000008", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 557000.0, + "fixture_value": 388000.0, "kind": "calibration_drift", - "ledger_value": 556551.0, - "name": "isc.private_school_students", + "ledger_value": 313605.0, + "name": "ons.population.age_80_89_by_region@E12000009", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 2057128451236.5015, + "fixture_value": 93000.0, "kind": "calibration_drift", - "ledger_value": 2103053000000.0, - "name": "ons.land.corporate_land_value", + "ledger_value": 77441.0, + "name": "ons.population.age_80_89_by_region@N92000002", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 5042871548763.499, + "fixture_value": 297000.0, "kind": "calibration_drift", - "ledger_value": 4559831000000.0, - "name": "ons.land.household_land_value", + "ledger_value": 238904.0, + "name": "ons.population.age_80_89_by_region@S92000003", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 7100000000000.0, + "fixture_value": 190000.0, "kind": "calibration_drift", - "ledger_value": 7117771000000.0, - "name": "ons.land.land_value", + "ledger_value": 154319.0, + "name": "ons.population.age_80_89_by_region@W92000004", "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { "fixture_value": 1698816.0, diff --git a/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_production_2023_signed_differences.json b/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_production_2023_signed_differences.json index 559cfcad0..a9477d4ce 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_production_2023_signed_differences.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_production_2023_signed_differences.json @@ -1,11 +1,11 @@ { - "compiled_count": 238, + "compiled_count": 337, "counts_by_kind": { - "calibration_drift": 12, - "fixture_only": 125, - "ledger_only": 214 + "calibration_drift": 120, + "fixture_only": 17, + "ledger_only": 205 }, - "difference_count": 351, + "difference_count": 342, "differences": [ { "fixture_value": 82000.0, @@ -15,2394 +15,2439 @@ "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 730000.0, + "fixture_value": 290045387683.9658, "kind": "fixture_only", - "name": "ons/east_age_0_9", + "name": "ons/household_land_value/EAST_MIDLANDS", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 745000.0, + "fixture_value": 516403292240.49414, "kind": "fixture_only", - "name": "ons/east_age_10_19", + "name": "ons/household_land_value/EAST_OF_ENGLAND", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 729000.0, + "fixture_value": 1130653075012.1692, "kind": "fixture_only", - "name": "ons/east_age_20_29", + "name": "ons/household_land_value/LONDON", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 868000.0, + "fixture_value": 113814239475.71474, "kind": "fixture_only", - "name": "ons/east_age_30_39", + "name": "ons/household_land_value/NORTH_EAST", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 829000.0, + "fixture_value": 402421888791.4934, "kind": "fixture_only", - "name": "ons/east_age_40_49", + "name": "ons/household_land_value/NORTH_WEST", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 873000.0, + "fixture_value": 266822289184.47226, "kind": "fixture_only", - "name": "ons/east_age_50_59", + "name": "ons/household_land_value/SCOTLAND", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 721000.0, + "fixture_value": 842967388093.2286, "kind": "fixture_only", - "name": "ons/east_age_60_69", + "name": "ons/household_land_value/SOUTH_EAST", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 612000.0, + "fixture_value": 434617600950.541, "kind": "fixture_only", - "name": "ons/east_age_70_79", + "name": "ons/household_land_value/SOUTH_WEST", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 360000.0, + "fixture_value": 170639951561.47794, "kind": "fixture_only", - "name": "ons/east_age_80_89", + "name": "ons/household_land_value/WALES", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 535000.0, + "fixture_value": 346703742992.981, "kind": "fixture_only", - "name": "ons/east_midlands_age_0_9", + "name": "ons/household_land_value/WEST_MIDLANDS", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 588000.0, + "fixture_value": 283675747954.8778, "kind": "fixture_only", - "name": "ons/east_midlands_age_10_19", + "name": "ons/household_land_value/YORKSHIRE", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 614000.0, + "fixture_value": 8298342.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_20_29", + "name": "ons/tenure_england_owned_outright", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 652000.0, + "fixture_value": 7597225.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_30_39", + "name": "ons/tenure_england_owned_with_mortgage", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 605000.0, + "fixture_value": 5251573.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_40_49", + "name": "ons/tenure_england_rented_privately", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 686000.0, + "fixture_value": 4247906.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_50_59", + "name": "ons/tenure_england_social_rent", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 572000.0, + "fixture_value": 25395046.0, "kind": "fixture_only", - "name": "ons/east_midlands_age_60_69", + "name": "ons/tenure_england_total", "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, { - "fixture_value": 475000.0, - "kind": "fixture_only", - "name": "ons/east_midlands_age_70_79", + "kind": "ledger_only", + "ledger_value": 124211.0, + "name": "dfe.funded_childcare.early_learning_2_year_olds", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 260000.0, - "kind": "fixture_only", - "name": "ons/east_midlands_age_80_89", + "kind": "ledger_only", + "ledger_value": 437147.0, + "name": "dfe.funded_childcare.universal_only_children", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 290045387683.9658, - "kind": "fixture_only", - "name": "ons/household_land_value/EAST_MIDLANDS", + "kind": "ledger_only", + "ledger_value": 135820000.0, + "name": "dfi_ni.bus.passenger_receipts", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 516403292240.49414, - "kind": "fixture_only", - "name": "ons/household_land_value/EAST_OF_ENGLAND", + "kind": "ledger_only", + "ledger_value": 3258254371.1953297, + "name": "dft.bus_fare_receipts.england", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1130653075012.1692, - "kind": "fixture_only", - "name": "ons/household_land_value/LONDON", + "kind": "ledger_only", + "ledger_value": 1338986541.2373116, + "name": "dft.bus_fare_receipts.london", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 113814239475.71474, - "kind": "fixture_only", - "name": "ons/household_land_value/NORTH_EAST", + "kind": "ledger_only", + "ledger_value": 2651721003.6800003, + "name": "dft.bus_net_support.england", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 402421888791.4934, - "kind": "fixture_only", - "name": "ons/household_land_value/NORTH_WEST", + "kind": "ledger_only", + "ledger_value": 954406918.7, + "name": "dft.bus_net_support.london", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 266822289184.47226, - "kind": "fixture_only", - "name": "ons/household_land_value/SCOTLAND", + "kind": "ledger_only", + "ledger_value": 6197311.0, + "name": "dwp.uc.households", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 842967388093.2286, - "kind": "fixture_only", - "name": "ons/household_land_value/SOUTH_EAST", + "kind": "ledger_only", + "ledger_value": 1190123.8333333333, + "name": "dwp.uc.households_children_1", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 434617600950.541, - "kind": "fixture_only", - "name": "ons/household_land_value/SOUTH_WEST", + "kind": "ledger_only", + "ledger_value": 1049895.5, + "name": "dwp.uc.households_children_2", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 170639951561.47794, - "kind": "fixture_only", - "name": "ons/household_land_value/WALES", + "kind": "ledger_only", + "ledger_value": 477887.6666666667, + "name": "dwp.uc.households_children_3", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 346703742992.981, - "kind": "fixture_only", - "name": "ons/household_land_value/WEST_MIDLANDS", + "kind": "ledger_only", + "ledger_value": 170713.66666666666, + "name": "dwp.uc.households_children_4", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 283675747954.8778, - "kind": "fixture_only", - "name": "ons/household_land_value/YORKSHIRE", + "kind": "ledger_only", + "ledger_value": 76320.08333333333, + "name": "dwp.uc.households_children_5_or_more", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1047000.0, - "kind": "fixture_only", - "name": "ons/london_age_0_9", + "kind": "ledger_only", + "ledger_value": 241130.91666666666, + "name": "dwp.uc.households_couple_no_children", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1043000.0, - "kind": "fixture_only", - "name": "ons/london_age_10_19", + "kind": "ledger_only", + "ledger_value": 826160.8333333334, + "name": "dwp.uc.households_couple_with_children", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1429000.0, - "kind": "fixture_only", - "name": "ons/london_age_20_29", + "kind": "ledger_only", + "ledger_value": 2990070.1666666665, + "name": "dwp.uc.households_single_no_children", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1545000.0, - "kind": "fixture_only", - "name": "ons/london_age_30_39", + "kind": "ledger_only", + "ledger_value": 2138780.1666666665, + "name": "dwp.uc.households_single_with_children", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." }, { - "fixture_value": 1280000.0, - "kind": "fixture_only", - "name": "ons/london_age_40_49", + "kind": "ledger_only", + "ledger_value": 624500000.0, + "name": "hmrc.tfc.government_top_up", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1086000.0, - "kind": "fixture_only", - "name": "ons/london_age_50_59", + "kind": "ledger_only", + "ledger_value": 222000.0, + "name": "hmrc/dividend_income_count_income_band_100_000_to_150_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 751000.0, - "kind": "fixture_only", - "name": "ons/london_age_60_69", + "kind": "ledger_only", + "ledger_value": 115000.0, + "name": "hmrc/dividend_income_count_income_band_12_570_to_15_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 484000.0, - "kind": "fixture_only", - "name": "ons/london_age_70_79", + "kind": "ledger_only", + "ledger_value": 92000.0, + "name": "hmrc/dividend_income_count_income_band_150_000_to_200_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 289000.0, - "kind": "fixture_only", - "name": "ons/london_age_80_89", + "kind": "ledger_only", + "ledger_value": 372000.0, + "name": "hmrc/dividend_income_count_income_band_15_000_to_20_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 283000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_0_9", + "kind": "ledger_only", + "ledger_value": 19000.0, + "name": "hmrc/dividend_income_count_income_band_1_000_000_to_inf", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 312000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_10_19", + "kind": "ledger_only", + "ledger_value": 75000.0, + "name": "hmrc/dividend_income_count_income_band_200_000_to_300_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 333000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_20_29", + "kind": "ledger_only", + "ledger_value": 843000.0, + "name": "hmrc/dividend_income_count_income_band_20_000_to_30_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 347000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_30_39", + "kind": "ledger_only", + "ledger_value": 49000.0, + "name": "hmrc/dividend_income_count_income_band_300_000_to_500_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 314000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_40_49", + "kind": "ledger_only", + "ledger_value": 667000.0, + "name": "hmrc/dividend_income_count_income_band_30_000_to_40_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 371000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_50_59", + "kind": "ledger_only", + "ledger_value": 627000.0, + "name": "hmrc/dividend_income_count_income_band_40_000_to_50_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 341000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_60_69", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 264000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_70_79", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 145000.0, - "kind": "fixture_only", - "name": "ons/north_east_age_80_89", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 851000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_0_9", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 906000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_10_19", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 958000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_20_29", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1029000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_30_39", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 914000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_40_49", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 1018000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_50_59", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 858000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_60_69", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 680000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_70_79", - "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." - }, - { - "fixture_value": 379000.0, - "kind": "fixture_only", - "name": "ons/north_west_age_80_89", + "kind": "ledger_only", + "ledger_value": 32000.0, + "name": "hmrc/dividend_income_count_income_band_500_000_to_1_000_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 235000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_0_9", + "kind": "ledger_only", + "ledger_value": 643000.0, + "name": "hmrc/dividend_income_count_income_band_50_000_to_70_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 245000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_10_19", + "kind": "ledger_only", + "ledger_value": 336000.0, + "name": "hmrc/dividend_income_count_income_band_70_000_to_100_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 224000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_20_29", + "kind": "ledger_only", + "ledger_value": 6870000000.0, + "name": "hmrc/dividend_income_income_band_100_000_to_150_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 258000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_30_39", + "kind": "ledger_only", + "ledger_value": 175000000.0, + "name": "hmrc/dividend_income_income_band_12_570_to_15_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 247000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_40_49", + "kind": "ledger_only", + "ledger_value": 3450000000.0, + "name": "hmrc/dividend_income_income_band_150_000_to_200_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 258000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_50_59", + "kind": "ledger_only", + "ledger_value": 855000000.0, + "name": "hmrc/dividend_income_income_band_15_000_to_20_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 217000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_60_69", + "kind": "ledger_only", + "ledger_value": 11100000000.0, + "name": "hmrc/dividend_income_income_band_1_000_000_to_inf", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 157000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_70_79", + "kind": "ledger_only", + "ledger_value": 3700000000.0, + "name": "hmrc/dividend_income_income_band_200_000_to_300_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 89000.0, - "kind": "fixture_only", - "name": "ons/northern_ireland_age_80_89", + "kind": "ledger_only", + "ledger_value": 3330000000.0, + "name": "hmrc/dividend_income_income_band_20_000_to_30_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 528000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_0_9", + "kind": "ledger_only", + "ledger_value": 3430000000.0, + "name": "hmrc/dividend_income_income_band_300_000_to_500_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 600000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_10_19", + "kind": "ledger_only", + "ledger_value": 4700000000.0, + "name": "hmrc/dividend_income_income_band_30_000_to_40_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 689000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_20_29", + "kind": "ledger_only", + "ledger_value": 8400000000.0, + "name": "hmrc/dividend_income_income_band_40_000_to_50_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 717000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_30_39", + "kind": "ledger_only", + "ledger_value": 3820000000.0, + "name": "hmrc/dividend_income_income_band_500_000_to_1_000_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 673000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_40_49", + "kind": "ledger_only", + "ledger_value": 12500000000.0, + "name": "hmrc/dividend_income_income_band_50_000_to_70_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 793000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_50_59", + "kind": "ledger_only", + "ledger_value": 9440000000.0, + "name": "hmrc/dividend_income_income_band_70_000_to_100_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 702000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_60_69", + "kind": "ledger_only", + "ledger_value": 791000.0, + "name": "hmrc/employment_income_count_income_band_100_000_to_150_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 520000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_70_79", + "kind": "ledger_only", + "ledger_value": 1360000.0, + "name": "hmrc/employment_income_count_income_band_12_570_to_15_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 282000.0, - "kind": "fixture_only", - "name": "ons/scotland_age_80_89", + "kind": "ledger_only", + "ledger_value": 264000.0, + "name": "hmrc/employment_income_count_income_band_150_000_to_200_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1044000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_0_9", + "kind": "ledger_only", + "ledger_value": 3100000.0, + "name": "hmrc/employment_income_count_income_band_15_000_to_20_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1119000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_10_19", + "kind": "ledger_only", + "ledger_value": 21000.0, + "name": "hmrc/employment_income_count_income_band_1_000_000_to_inf", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1062000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_20_29", + "kind": "ledger_only", + "ledger_value": 180000.0, + "name": "hmrc/employment_income_count_income_band_200_000_to_300_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1250000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_30_39", + "kind": "ledger_only", + "ledger_value": 7470000.0, + "name": "hmrc/employment_income_count_income_band_20_000_to_30_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1241000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_40_49", + "kind": "ledger_only", + "ledger_value": 93000.0, + "name": "hmrc/employment_income_count_income_band_300_000_to_500_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1296000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_50_59", + "kind": "ledger_only", + "ledger_value": 5370000.0, + "name": "hmrc/employment_income_count_income_band_30_000_to_40_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 1052000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_60_69", + "kind": "ledger_only", + "ledger_value": 3500000.0, + "name": "hmrc/employment_income_count_income_band_40_000_to_50_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 882000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_70_79", + "kind": "ledger_only", + "ledger_value": 44000.0, + "name": "hmrc/employment_income_count_income_band_500_000_to_1_000_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 531000.0, - "kind": "fixture_only", - "name": "ons/south_east_age_80_89", + "kind": "ledger_only", + "ledger_value": 3430000.0, + "name": "hmrc/employment_income_count_income_band_50_000_to_70_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 579000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_0_9", + "kind": "ledger_only", + "ledger_value": 1640000.0, + "name": "hmrc/employment_income_count_income_band_70_000_to_100_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 650000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_10_19", + "kind": "ledger_only", + "ledger_value": 82300000000.0, + "name": "hmrc/employment_income_income_band_100_000_to_150_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 675000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_20_29", + "kind": "ledger_only", + "ledger_value": 16900000000.0, + "name": "hmrc/employment_income_income_band_12_570_to_15_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 724000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_30_39", + "kind": "ledger_only", + "ledger_value": 39200000000.0, + "name": "hmrc/employment_income_income_band_150_000_to_200_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 686000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_40_49", + "kind": "ledger_only", + "ledger_value": 48600000000.0, + "name": "hmrc/employment_income_income_band_15_000_to_20_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 800000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_50_59", + "kind": "ledger_only", + "ledger_value": 35500000000.0, + "name": "hmrc/employment_income_income_band_1_000_000_to_inf", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 716000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_60_69", + "kind": "ledger_only", + "ledger_value": 36600000000.0, + "name": "hmrc/employment_income_income_band_200_000_to_300_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 630000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_70_79", + "kind": "ledger_only", + "ledger_value": 172000000000.0, + "name": "hmrc/employment_income_income_band_20_000_to_30_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 369000.0, - "kind": "fixture_only", - "name": "ons/south_west_age_80_89", + "kind": "ledger_only", + "ledger_value": 29000000000.0, + "name": "hmrc/employment_income_income_band_300_000_to_500_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 8298342.0, - "kind": "fixture_only", - "name": "ons/tenure_england_owned_outright", + "kind": "ledger_only", + "ledger_value": 170000000000.0, + "name": "hmrc/employment_income_income_band_30_000_to_40_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 7597225.0, - "kind": "fixture_only", - "name": "ons/tenure_england_owned_with_mortgage", + "kind": "ledger_only", + "ledger_value": 139000000000.0, + "name": "hmrc/employment_income_income_band_40_000_to_50_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 5251573.0, - "kind": "fixture_only", - "name": "ons/tenure_england_rented_privately", + "kind": "ledger_only", + "ledger_value": 23100000000.0, + "name": "hmrc/employment_income_income_band_500_000_to_1_000_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 4247906.0, - "kind": "fixture_only", - "name": "ons/tenure_england_social_rent", + "kind": "ledger_only", + "ledger_value": 174000000000.0, + "name": "hmrc/employment_income_income_band_50_000_to_70_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 25395046.0, - "kind": "fixture_only", - "name": "ons/tenure_england_total", + "kind": "ledger_only", + "ledger_value": 118000000000.0, + "name": "hmrc/employment_income_income_band_70_000_to_100_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 326000.0, - "kind": "fixture_only", - "name": "ons/wales_age_0_9", + "kind": "ledger_only", + "ledger_value": 109000.0, + "name": "hmrc/private_pension_income_count_income_band_100_000_to_150_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 364000.0, - "kind": "fixture_only", - "name": "ons/wales_age_10_19", + "kind": "ledger_only", + "ledger_value": 1070000.0, + "name": "hmrc/private_pension_income_count_income_band_12_570_to_15_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 378000.0, - "kind": "fixture_only", - "name": "ons/wales_age_20_29", + "kind": "ledger_only", + "ledger_value": 29000.0, + "name": "hmrc/private_pension_income_count_income_band_150_000_to_200_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 398000.0, - "kind": "fixture_only", - "name": "ons/wales_age_30_39", + "kind": "ledger_only", + "ledger_value": 2140000.0, + "name": "hmrc/private_pension_income_count_income_band_15_000_to_20_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 364000.0, - "kind": "fixture_only", - "name": "ons/wales_age_40_49", + "kind": "ledger_only", + "ledger_value": 2000.0, + "name": "hmrc/private_pension_income_count_income_band_1_000_000_to_inf", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 436000.0, - "kind": "fixture_only", - "name": "ons/wales_age_50_59", + "kind": "ledger_only", + "ledger_value": 20000.0, + "name": "hmrc/private_pension_income_count_income_band_200_000_to_300_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 393000.0, - "kind": "fixture_only", - "name": "ons/wales_age_60_69", + "kind": "ledger_only", + "ledger_value": 2660000.0, + "name": "hmrc/private_pension_income_count_income_band_20_000_to_30_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 327000.0, - "kind": "fixture_only", - "name": "ons/wales_age_70_79", + "kind": "ledger_only", + "ledger_value": 10000.0, + "name": "hmrc/private_pension_income_count_income_band_300_000_to_500_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 181000.0, - "kind": "fixture_only", - "name": "ons/wales_age_80_89", + "kind": "ledger_only", + "ledger_value": 1450000.0, + "name": "hmrc/private_pension_income_count_income_band_30_000_to_40_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 703000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_0_9", + "kind": "ledger_only", + "ledger_value": 779000.0, + "name": "hmrc/private_pension_income_count_income_band_40_000_to_50_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 747000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_10_19", + "kind": "ledger_only", + "ledger_value": 4000.0, + "name": "hmrc/private_pension_income_count_income_band_500_000_to_1_000_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 753000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_20_29", + "kind": "ledger_only", + "ledger_value": 643000.0, + "name": "hmrc/private_pension_income_count_income_band_50_000_to_70_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 813000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_30_39", + "kind": "ledger_only", + "ledger_value": 259000.0, + "name": "hmrc/private_pension_income_count_income_band_70_000_to_100_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 739000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_40_49", + "kind": "ledger_only", + "ledger_value": 5430000000.0, + "name": "hmrc/private_pension_income_income_band_100_000_to_150_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 805000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_50_59", + "kind": "ledger_only", + "ledger_value": 4350000000.0, + "name": "hmrc/private_pension_income_income_band_12_570_to_15_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 661000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_60_69", + "kind": "ledger_only", + "ledger_value": 1810000000.0, + "name": "hmrc/private_pension_income_income_band_150_000_to_200_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 542000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_70_79", + "kind": "ledger_only", + "ledger_value": 13600000000.0, + "name": "hmrc/private_pension_income_income_band_15_000_to_20_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 321000.0, - "kind": "fixture_only", - "name": "ons/west_midlands_age_80_89", + "kind": "ledger_only", + "ledger_value": 370000000.0, + "name": "hmrc/private_pension_income_income_band_1_000_000_to_inf", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 621000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_0_9", + "kind": "ledger_only", + "ledger_value": 1570000000.0, + "name": "hmrc/private_pension_income_income_band_200_000_to_300_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 669000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_10_19", + "kind": "ledger_only", + "ledger_value": 30200000000.0, + "name": "hmrc/private_pension_income_income_band_20_000_to_30_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 713000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_20_29", + "kind": "ledger_only", + "ledger_value": 1120000000.0, + "name": "hmrc/private_pension_income_income_band_300_000_to_500_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 745000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_30_39", + "kind": "ledger_only", + "ledger_value": 24900000000.0, + "name": "hmrc/private_pension_income_income_band_30_000_to_40_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 668000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_40_49", + "kind": "ledger_only", + "ledger_value": 16900000000.0, + "name": "hmrc/private_pension_income_income_band_40_000_to_50_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 751000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_50_59", + "kind": "ledger_only", + "ledger_value": 640000000.0, + "name": "hmrc/private_pension_income_income_band_500_000_to_1_000_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 635000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_60_69", + "kind": "ledger_only", + "ledger_value": 17400000000.0, + "name": "hmrc/private_pension_income_income_band_50_000_to_70_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 510000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_70_79", + "kind": "ledger_only", + "ledger_value": 9470000000.0, + "name": "hmrc/private_pension_income_income_band_70_000_to_100_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "fixture_value": 287000.0, - "kind": "fixture_only", - "name": "ons/yorkshire_and_the_humber_age_80_89", + "kind": "ledger_only", + "ledger_value": 137000.0, + "name": "hmrc/property_income_count_income_band_100_000_to_150_000", "period": 2023, - "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 124211.0, - "name": "dfe.funded_childcare.early_learning_2_year_olds", + "ledger_value": 101000.0, + "name": "hmrc/property_income_count_income_band_12_570_to_15_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 437147.0, - "name": "dfe.funded_childcare.universal_only_children", + "ledger_value": 54000.0, + "name": "hmrc/property_income_count_income_band_150_000_to_200_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 135820000.0, - "name": "dfi_ni.bus.passenger_receipts", + "ledger_value": 232000.0, + "name": "hmrc/property_income_count_income_band_15_000_to_20_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3258254371.1953297, - "name": "dft.bus_fare_receipts.england", + "ledger_value": 7000.0, + "name": "hmrc/property_income_count_income_band_1_000_000_to_inf", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1338986541.2373116, - "name": "dft.bus_fare_receipts.london", + "ledger_value": 41000.0, + "name": "hmrc/property_income_count_income_band_200_000_to_300_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 2651721003.6800003, - "name": "dft.bus_net_support.england", + "ledger_value": 431000.0, + "name": "hmrc/property_income_count_income_band_20_000_to_30_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 954406918.7, - "name": "dft.bus_net_support.london", + "ledger_value": 23000.0, + "name": "hmrc/property_income_count_income_band_300_000_to_500_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 6197311.0, - "name": "dwp.uc.households", + "ledger_value": 364000.0, + "name": "hmrc/property_income_count_income_band_30_000_to_40_000", "period": 2023, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1190123.8333333333, - "name": "dwp.uc.households_children_1", + "ledger_value": 325000.0, + "name": "hmrc/property_income_count_income_band_40_000_to_50_000", "period": 2023, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1049895.5, - "name": "dwp.uc.households_children_2", + "ledger_value": 13000.0, + "name": "hmrc/property_income_count_income_band_500_000_to_1_000_000", "period": 2023, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 477887.6666666667, - "name": "dwp.uc.households_children_3", + "ledger_value": 397000.0, + "name": "hmrc/property_income_count_income_band_50_000_to_70_000", "period": 2023, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 170713.66666666666, - "name": "dwp.uc.households_children_4", + "ledger_value": 226000.0, + "name": "hmrc/property_income_count_income_band_70_000_to_100_000", "period": 2023, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 76320.08333333333, - "name": "dwp.uc.households_children_5_or_more", + "ledger_value": 85000.0, + "name": "hmrc/self_employment_income_count_income_band_100_000_to_150_000", "period": 2023, - "reason": "Inherited PR #891 contract with #892 source-window averaging: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 241130.91666666666, - "name": "dwp.uc.households_couple_no_children", + "ledger_value": 444000.0, + "name": "hmrc/self_employment_income_count_income_band_12_570_to_15_000", "period": 2023, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 826160.8333333334, - "name": "dwp.uc.households_couple_with_children", + "ledger_value": 40000.0, + "name": "hmrc/self_employment_income_count_income_band_150_000_to_200_000", "period": 2023, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 2990070.1666666665, - "name": "dwp.uc.households_single_no_children", + "ledger_value": 651000.0, + "name": "hmrc/self_employment_income_count_income_band_15_000_to_20_000", "period": 2023, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 2138780.1666666665, - "name": "dwp.uc.households_single_with_children", + "ledger_value": 11000.0, + "name": "hmrc/self_employment_income_count_income_band_1_000_000_to_inf", "period": 2023, - "reason": "Inherited PR #891 contract: current paid-UC counts use the explicit January-December 2025 source windows on the ec7169 national feed. This compares that declaration with the frozen 2023 production baseline; it does not redatum the observations to the comparison year or create a new year ruling." + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 624500000.0, - "name": "hmrc.tfc.government_top_up", + "ledger_value": 34000.0, + "name": "hmrc/self_employment_income_count_income_band_200_000_to_300_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 222000.0, - "name": "hmrc/dividend_income_count_income_band_100_000_to_150_000", + "ledger_value": 961000.0, + "name": "hmrc/self_employment_income_count_income_band_20_000_to_30_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 115000.0, - "name": "hmrc/dividend_income_count_income_band_12_570_to_15_000", + "ledger_value": 21000.0, + "name": "hmrc/self_employment_income_count_income_band_300_000_to_500_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 92000.0, - "name": "hmrc/dividend_income_count_income_band_150_000_to_200_000", + "ledger_value": 595000.0, + "name": "hmrc/self_employment_income_count_income_band_30_000_to_40_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 372000.0, - "name": "hmrc/dividend_income_count_income_band_15_000_to_20_000", + "ledger_value": 359000.0, + "name": "hmrc/self_employment_income_count_income_band_40_000_to_50_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 19000.0, - "name": "hmrc/dividend_income_count_income_band_1_000_000_to_inf", + "ledger_value": 15000.0, + "name": "hmrc/self_employment_income_count_income_band_500_000_to_1_000_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 75000.0, - "name": "hmrc/dividend_income_count_income_band_200_000_to_300_000", + "ledger_value": 311000.0, + "name": "hmrc/self_employment_income_count_income_band_50_000_to_70_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 843000.0, - "name": "hmrc/dividend_income_count_income_band_20_000_to_30_000", + "ledger_value": 143000.0, + "name": "hmrc/self_employment_income_count_income_band_70_000_to_100_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 49000.0, - "name": "hmrc/dividend_income_count_income_band_300_000_to_500_000", + "ledger_value": 4980000000.0, + "name": "hmrc/self_employment_income_income_band_100_000_to_150_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 667000.0, - "name": "hmrc/dividend_income_count_income_band_30_000_to_40_000", + "ledger_value": 4810000000.0, + "name": "hmrc/self_employment_income_income_band_12_570_to_15_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 627000.0, - "name": "hmrc/dividend_income_count_income_band_40_000_to_50_000", + "ledger_value": 3650000000.0, + "name": "hmrc/self_employment_income_income_band_150_000_to_200_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 32000.0, - "name": "hmrc/dividend_income_count_income_band_500_000_to_1_000_000", + "ledger_value": 8030000000.0, + "name": "hmrc/self_employment_income_income_band_15_000_to_20_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 643000.0, - "name": "hmrc/dividend_income_count_income_band_50_000_to_70_000", + "ledger_value": 19500000000.0, + "name": "hmrc/self_employment_income_income_band_1_000_000_to_inf", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 336000.0, - "name": "hmrc/dividend_income_count_income_band_70_000_to_100_000", + "ledger_value": 4390000000.0, + "name": "hmrc/self_employment_income_income_band_200_000_to_300_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 6870000000.0, - "name": "hmrc/dividend_income_income_band_100_000_to_150_000", + "ledger_value": 15700000000.0, + "name": "hmrc/self_employment_income_income_band_20_000_to_30_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 175000000.0, - "name": "hmrc/dividend_income_income_band_12_570_to_15_000", + "ledger_value": 4840000000.0, + "name": "hmrc/self_employment_income_income_band_300_000_to_500_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3450000000.0, - "name": "hmrc/dividend_income_income_band_150_000_to_200_000", + "ledger_value": 12600000000.0, + "name": "hmrc/self_employment_income_income_band_30_000_to_40_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 855000000.0, - "name": "hmrc/dividend_income_income_band_15_000_to_20_000", + "ledger_value": 8730000000.0, + "name": "hmrc/self_employment_income_income_band_40_000_to_50_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 11100000000.0, - "name": "hmrc/dividend_income_income_band_1_000_000_to_inf", + "ledger_value": 6670000000.0, + "name": "hmrc/self_employment_income_income_band_500_000_to_1_000_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3700000000.0, - "name": "hmrc/dividend_income_income_band_200_000_to_300_000", + "ledger_value": 8220000000.0, + "name": "hmrc/self_employment_income_income_band_50_000_to_70_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3330000000.0, - "name": "hmrc/dividend_income_income_band_20_000_to_30_000", + "ledger_value": 5360000000.0, + "name": "hmrc/self_employment_income_income_band_70_000_to_100_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3430000000.0, - "name": "hmrc/dividend_income_income_band_300_000_to_500_000", + "ledger_value": 74000.0, + "name": "hmrc/state_pension_count_income_band_100_000_to_150_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 4700000000.0, - "name": "hmrc/dividend_income_income_band_30_000_to_40_000", + "ledger_value": 1140000.0, + "name": "hmrc/state_pension_count_income_band_12_570_to_15_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 8400000000.0, - "name": "hmrc/dividend_income_income_band_40_000_to_50_000", + "ledger_value": 21000.0, + "name": "hmrc/state_pension_count_income_band_150_000_to_200_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3820000000.0, - "name": "hmrc/dividend_income_income_band_500_000_to_1_000_000", + "ledger_value": 2050000.0, + "name": "hmrc/state_pension_count_income_band_15_000_to_20_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 12500000000.0, - "name": "hmrc/dividend_income_income_band_50_000_to_70_000", + "ledger_value": 2000.0, + "name": "hmrc/state_pension_count_income_band_1_000_000_to_inf", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 9440000000.0, - "name": "hmrc/dividend_income_income_band_70_000_to_100_000", + "ledger_value": 14000.0, + "name": "hmrc/state_pension_count_income_band_200_000_to_300_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 791000.0, - "name": "hmrc/employment_income_count_income_band_100_000_to_150_000", + "ledger_value": 2320000.0, + "name": "hmrc/state_pension_count_income_band_20_000_to_30_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1360000.0, - "name": "hmrc/employment_income_count_income_band_12_570_to_15_000", + "ledger_value": 8000.0, + "name": "hmrc/state_pension_count_income_band_300_000_to_500_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 264000.0, - "name": "hmrc/employment_income_count_income_band_150_000_to_200_000", + "ledger_value": 1160000.0, + "name": "hmrc/state_pension_count_income_band_30_000_to_40_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3100000.0, - "name": "hmrc/employment_income_count_income_band_15_000_to_20_000", + "ledger_value": 568000.0, + "name": "hmrc/state_pension_count_income_band_40_000_to_50_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 21000.0, - "name": "hmrc/employment_income_count_income_band_1_000_000_to_inf", + "ledger_value": 3000.0, + "name": "hmrc/state_pension_count_income_band_500_000_to_1_000_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 180000.0, - "name": "hmrc/employment_income_count_income_band_200_000_to_300_000", + "ledger_value": 441000.0, + "name": "hmrc/state_pension_count_income_band_50_000_to_70_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 7470000.0, - "name": "hmrc/employment_income_count_income_band_20_000_to_30_000", + "ledger_value": 176000.0, + "name": "hmrc/state_pension_count_income_band_70_000_to_100_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 93000.0, - "name": "hmrc/employment_income_count_income_band_300_000_to_500_000", + "ledger_value": 847000000.0, + "name": "hmrc/state_pension_income_band_100_000_to_150_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 5370000.0, - "name": "hmrc/employment_income_count_income_band_30_000_to_40_000", + "ledger_value": 11800000000.0, + "name": "hmrc/state_pension_income_band_12_570_to_15_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3500000.0, - "name": "hmrc/employment_income_count_income_band_40_000_to_50_000", + "ledger_value": 265000000.0, + "name": "hmrc/state_pension_income_band_150_000_to_200_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 44000.0, - "name": "hmrc/employment_income_count_income_band_500_000_to_1_000_000", + "ledger_value": 22200000000.0, + "name": "hmrc/state_pension_income_band_15_000_to_20_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 3430000.0, - "name": "hmrc/employment_income_count_income_band_50_000_to_70_000", + "ledger_value": 20000000.0, + "name": "hmrc/state_pension_income_band_1_000_000_to_inf", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1640000.0, - "name": "hmrc/employment_income_count_income_band_70_000_to_100_000", + "ledger_value": 179000000.0, + "name": "hmrc/state_pension_income_band_200_000_to_300_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 82300000000.0, - "name": "hmrc/employment_income_income_band_100_000_to_150_000", + "ledger_value": 24900000000.0, + "name": "hmrc/state_pension_income_band_20_000_to_30_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 16900000000.0, - "name": "hmrc/employment_income_income_band_12_570_to_15_000", + "ledger_value": 96000000.0, + "name": "hmrc/state_pension_income_band_300_000_to_500_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 39200000000.0, - "name": "hmrc/employment_income_income_band_150_000_to_200_000", + "ledger_value": 12300000000.0, + "name": "hmrc/state_pension_income_band_30_000_to_40_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 48600000000.0, - "name": "hmrc/employment_income_income_band_15_000_to_20_000", + "ledger_value": 6020000000.0, + "name": "hmrc/state_pension_income_band_40_000_to_50_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 35500000000.0, - "name": "hmrc/employment_income_income_band_1_000_000_to_inf", + "ledger_value": 43000000.0, + "name": "hmrc/state_pension_income_band_500_000_to_1_000_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 36600000000.0, - "name": "hmrc/employment_income_income_band_200_000_to_300_000", + "ledger_value": 4660000000.0, + "name": "hmrc/state_pension_income_band_50_000_to_70_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 172000000000.0, - "name": "hmrc/employment_income_income_band_20_000_to_30_000", + "ledger_value": 1890000000.0, + "name": "hmrc/state_pension_income_band_70_000_to_100_000", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 29000000000.0, - "name": "hmrc/employment_income_income_band_300_000_to_500_000", + "ledger_value": 99200000.0, + "name": "nithc.public_transport_support", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 170000000000.0, - "name": "hmrc/employment_income_income_band_30_000_to_40_000", + "ledger_value": 52505000000.0, + "name": "ons.household_energy_expenditure", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 139000000000.0, - "name": "hmrc/employment_income_income_band_40_000_to_50_000", + "ledger_value": 1742660.0, + "name": "ons.population.female_0_4", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 23100000000.0, - "name": "hmrc/employment_income_income_band_500_000_to_1_000_000", + "ledger_value": 2025209.0, + "name": "ons.population.female_10_14", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 174000000000.0, - "name": "hmrc/employment_income_income_band_50_000_to_70_000", + "ledger_value": 1947075.0, + "name": "ons.population.female_15_19", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 118000000000.0, - "name": "hmrc/employment_income_income_band_70_000_to_100_000", + "ledger_value": 2008105.0, + "name": "ons.population.female_20_24", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 109000.0, - "name": "hmrc/private_pension_income_count_income_band_100_000_to_150_000", + "ledger_value": 2232408.0, + "name": "ons.population.female_25_29", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1070000.0, - "name": "hmrc/private_pension_income_count_income_band_12_570_to_15_000", + "ledger_value": 2417082.0, + "name": "ons.population.female_30_34", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 29000.0, - "name": "hmrc/private_pension_income_count_income_band_150_000_to_200_000", + "ledger_value": 2396290.0, + "name": "ons.population.female_35_39", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 2140000.0, - "name": "hmrc/private_pension_income_count_income_band_15_000_to_20_000", + "ledger_value": 2282889.0, + "name": "ons.population.female_40_44", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 2000.0, - "name": "hmrc/private_pension_income_count_income_band_1_000_000_to_inf", + "ledger_value": 2056833.0, + "name": "ons.population.female_45_49", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 20000.0, - "name": "hmrc/private_pension_income_count_income_band_200_000_to_300_000", + "ledger_value": 2304569.0, + "name": "ons.population.female_50_54", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 2660000.0, - "name": "hmrc/private_pension_income_count_income_band_20_000_to_30_000", + "ledger_value": 2360196.0, + "name": "ons.population.female_55_59", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 10000.0, - "name": "hmrc/private_pension_income_count_income_band_300_000_to_500_000", + "ledger_value": 1916898.0, + "name": "ons.population.female_5_9", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1450000.0, - "name": "hmrc/private_pension_income_count_income_band_30_000_to_40_000", + "ledger_value": 2133183.0, + "name": "ons.population.female_60_64", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 779000.0, - "name": "hmrc/private_pension_income_count_income_band_40_000_to_50_000", + "ledger_value": 1794961.0, + "name": "ons.population.female_65_69", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 4000.0, - "name": "hmrc/private_pension_income_count_income_band_500_000_to_1_000_000", + "ledger_value": 1633749.0, + "name": "ons.population.female_70_74", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 643000.0, - "name": "hmrc/private_pension_income_count_income_band_50_000_to_70_000", + "ledger_value": 1518990.0, + "name": "ons.population.female_75_79", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 259000.0, - "name": "hmrc/private_pension_income_count_income_band_70_000_to_100_000", + "ledger_value": 985351.0, + "name": "ons.population.female_80_84", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 5430000000.0, - "name": "hmrc/private_pension_income_income_band_100_000_to_150_000", + "ledger_value": 650117.0, + "name": "ons.population.female_85_89", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 4350000000.0, - "name": "hmrc/private_pension_income_income_band_12_570_to_15_000", + "ledger_value": 408216.0, + "name": "ons.population.female_90_plus", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1810000000.0, - "name": "hmrc/private_pension_income_income_band_150_000_to_200_000", + "ledger_value": 1829347.0, + "name": "ons.population.male_0_4", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 13600000000.0, - "name": "hmrc/private_pension_income_income_band_15_000_to_20_000", + "ledger_value": 2125078.0, + "name": "ons.population.male_10_14", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 370000000.0, - "name": "hmrc/private_pension_income_income_band_1_000_000_to_inf", + "ledger_value": 2064393.0, + "name": "ons.population.male_15_19", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1570000000.0, - "name": "hmrc/private_pension_income_income_band_200_000_to_300_000", + "ledger_value": 2089437.0, + "name": "ons.population.male_20_24", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 30200000000.0, - "name": "hmrc/private_pension_income_income_band_20_000_to_30_000", + "ledger_value": 2195339.0, + "name": "ons.population.male_25_29", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 1120000000.0, - "name": "hmrc/private_pension_income_income_band_300_000_to_500_000", + "ledger_value": 2283116.0, + "name": "ons.population.male_30_34", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 24900000000.0, - "name": "hmrc/private_pension_income_income_band_30_000_to_40_000", + "ledger_value": 2240303.0, + "name": "ons.population.male_35_39", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 16900000000.0, - "name": "hmrc/private_pension_income_income_band_40_000_to_50_000", + "ledger_value": 2163337.0, + "name": "ons.population.male_40_44", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 640000000.0, - "name": "hmrc/private_pension_income_income_band_500_000_to_1_000_000", + "ledger_value": 1986409.0, + "name": "ons.population.male_45_49", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 17400000000.0, - "name": "hmrc/private_pension_income_income_band_50_000_to_70_000", + "ledger_value": 2218309.0, + "name": "ons.population.male_50_54", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 9470000000.0, - "name": "hmrc/private_pension_income_income_band_70_000_to_100_000", + "ledger_value": 2265069.0, + "name": "ons.population.male_55_59", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 137000.0, - "name": "hmrc/property_income_count_income_band_100_000_to_150_000", + "ledger_value": 2009023.0, + "name": "ons.population.male_5_9", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 101000.0, - "name": "hmrc/property_income_count_income_band_12_570_to_15_000", + "ledger_value": 2048486.0, + "name": "ons.population.male_60_64", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 54000.0, - "name": "hmrc/property_income_count_income_band_150_000_to_200_000", + "ledger_value": 1694748.0, + "name": "ons.population.male_65_69", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 232000.0, - "name": "hmrc/property_income_count_income_band_15_000_to_20_000", + "ledger_value": 1486710.0, + "name": "ons.population.male_70_74", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 7000.0, - "name": "hmrc/property_income_count_income_band_1_000_000_to_inf", + "ledger_value": 1324325.0, + "name": "ons.population.male_75_79", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 41000.0, - "name": "hmrc/property_income_count_income_band_200_000_to_300_000", + "ledger_value": 777961.0, + "name": "ons.population.male_80_84", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 431000.0, - "name": "hmrc/property_income_count_income_band_20_000_to_30_000", + "ledger_value": 445535.0, + "name": "ons.population.male_85_89", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 23000.0, - "name": "hmrc/property_income_count_income_band_300_000_to_500_000", + "ledger_value": 203503.0, + "name": "ons.population.male_90_plus", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 364000.0, - "name": "hmrc/property_income_count_income_band_30_000_to_40_000", + "ledger_value": 68265209.0, + "name": "ons.population.uk_total", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 325000.0, - "name": "hmrc/property_income_count_income_band_40_000_to_50_000", + "ledger_value": 23120884840.50285, + "name": "orr.rail_government_support", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 13000.0, - "name": "hmrc/property_income_count_income_band_500_000_to_1_000_000", + "ledger_value": 438893000.0, + "name": "scotgov.bus.government_support", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 397000.0, - "name": "hmrc/property_income_count_income_band_50_000_to_70_000", + "ledger_value": 97426240.0, + "name": "welshgov.bus.public_support", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 226000.0, - "name": "hmrc/property_income_count_income_band_70_000_to_100_000", + "fixture_value": 557000.0, + "kind": "calibration_drift", + "ledger_value": 554243.0, + "name": "isc.private_school_students", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 85000.0, - "name": "hmrc/self_employment_income_count_income_band_100_000_to_150_000", + "fixture_value": 1957550396058.5835, + "kind": "calibration_drift", + "ledger_value": 1976893000000.0, + "name": "ons.land.corporate_land_value", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 444000.0, - "name": "hmrc/self_employment_income_count_income_band_12_570_to_15_000", + "fixture_value": 4798764603941.416, + "kind": "calibration_drift", + "ledger_value": 4383082000000.0, + "name": "ons.land.household_land_value", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, { - "kind": "ledger_only", - "ledger_value": 40000.0, - "name": "hmrc/self_employment_income_count_income_band_150_000_to_200_000", + "fixture_value": 283000.0, + "kind": "calibration_drift", + "ledger_value": 282659.0, + "name": "ons.population.age_0_9_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 651000.0, - "name": "hmrc/self_employment_income_count_income_band_15_000_to_20_000", + "fixture_value": 851000.0, + "kind": "calibration_drift", + "ledger_value": 855531.0, + "name": "ons.population.age_0_9_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 11000.0, - "name": "hmrc/self_employment_income_count_income_band_1_000_000_to_inf", + "fixture_value": 621000.0, + "kind": "calibration_drift", + "ledger_value": 621826.0, + "name": "ons.population.age_0_9_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 34000.0, - "name": "hmrc/self_employment_income_count_income_band_200_000_to_300_000", + "fixture_value": 535000.0, + "kind": "calibration_drift", + "ledger_value": 538271.0, + "name": "ons.population.age_0_9_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 961000.0, - "name": "hmrc/self_employment_income_count_income_band_20_000_to_30_000", + "fixture_value": 703000.0, + "kind": "calibration_drift", + "ledger_value": 708449.0, + "name": "ons.population.age_0_9_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 21000.0, - "name": "hmrc/self_employment_income_count_income_band_300_000_to_500_000", + "fixture_value": 730000.0, + "kind": "calibration_drift", + "ledger_value": 735229.0, + "name": "ons.population.age_0_9_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 595000.0, - "name": "hmrc/self_employment_income_count_income_band_30_000_to_40_000", + "fixture_value": 1047000.0, + "kind": "calibration_drift", + "ledger_value": 1046493.0, + "name": "ons.population.age_0_9_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 359000.0, - "name": "hmrc/self_employment_income_count_income_band_40_000_to_50_000", + "fixture_value": 1044000.0, + "kind": "calibration_drift", + "ledger_value": 1049550.0, + "name": "ons.population.age_0_9_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 15000.0, - "name": "hmrc/self_employment_income_count_income_band_500_000_to_1_000_000", + "fixture_value": 579000.0, + "kind": "calibration_drift", + "ledger_value": 575396.0, + "name": "ons.population.age_0_9_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 311000.0, - "name": "hmrc/self_employment_income_count_income_band_50_000_to_70_000", + "fixture_value": 235000.0, + "kind": "calibration_drift", + "ledger_value": 232833.0, + "name": "ons.population.age_0_9_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 143000.0, - "name": "hmrc/self_employment_income_count_income_band_70_000_to_100_000", + "fixture_value": 528000.0, + "kind": "calibration_drift", + "ledger_value": 527966.0, + "name": "ons.population.age_0_9_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 4980000000.0, - "name": "hmrc/self_employment_income_income_band_100_000_to_150_000", + "fixture_value": 326000.0, + "kind": "calibration_drift", + "ledger_value": 323725.0, + "name": "ons.population.age_0_9_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 4810000000.0, - "name": "hmrc/self_employment_income_income_band_12_570_to_15_000", + "fixture_value": 312000.0, + "kind": "calibration_drift", + "ledger_value": 317901.0, + "name": "ons.population.age_10_19_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 3650000000.0, - "name": "hmrc/self_employment_income_income_band_150_000_to_200_000", + "fixture_value": 906000.0, + "kind": "calibration_drift", + "ledger_value": 927958.0, + "name": "ons.population.age_10_19_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 8030000000.0, - "name": "hmrc/self_employment_income_income_band_15_000_to_20_000", + "fixture_value": 669000.0, + "kind": "calibration_drift", + "ledger_value": 683509.0, + "name": "ons.population.age_10_19_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 19500000000.0, - "name": "hmrc/self_employment_income_income_band_1_000_000_to_inf", + "fixture_value": 588000.0, + "kind": "calibration_drift", + "ledger_value": 601285.0, + "name": "ons.population.age_10_19_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 4390000000.0, - "name": "hmrc/self_employment_income_income_band_200_000_to_300_000", + "fixture_value": 747000.0, + "kind": "calibration_drift", + "ledger_value": 765407.0, + "name": "ons.population.age_10_19_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 15700000000.0, - "name": "hmrc/self_employment_income_income_band_20_000_to_30_000", + "fixture_value": 745000.0, + "kind": "calibration_drift", + "ledger_value": 766334.0, + "name": "ons.population.age_10_19_by_region@E12000006", + "period": 2023, + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." + }, + { + "fixture_value": 1043000.0, + "kind": "calibration_drift", + "ledger_value": 1057772.0, + "name": "ons.population.age_10_19_by_region@E12000007", + "period": 2023, + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." + }, + { + "fixture_value": 1119000.0, + "kind": "calibration_drift", + "ledger_value": 1151908.0, + "name": "ons.population.age_10_19_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 4840000000.0, - "name": "hmrc/self_employment_income_income_band_300_000_to_500_000", + "fixture_value": 650000.0, + "kind": "calibration_drift", + "ledger_value": 661929.0, + "name": "ons.population.age_10_19_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 12600000000.0, - "name": "hmrc/self_employment_income_income_band_30_000_to_40_000", + "fixture_value": 245000.0, + "kind": "calibration_drift", + "ledger_value": 250006.0, + "name": "ons.population.age_10_19_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 8730000000.0, - "name": "hmrc/self_employment_income_income_band_40_000_to_50_000", + "fixture_value": 600000.0, + "kind": "calibration_drift", + "ledger_value": 606067.0, + "name": "ons.population.age_10_19_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 6670000000.0, - "name": "hmrc/self_employment_income_income_band_500_000_to_1_000_000", + "fixture_value": 364000.0, + "kind": "calibration_drift", + "ledger_value": 371679.0, + "name": "ons.population.age_10_19_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 8220000000.0, - "name": "hmrc/self_employment_income_income_band_50_000_to_70_000", + "fixture_value": 333000.0, + "kind": "calibration_drift", + "ledger_value": 332989.0, + "name": "ons.population.age_20_29_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 5360000000.0, - "name": "hmrc/self_employment_income_income_band_70_000_to_100_000", + "fixture_value": 958000.0, + "kind": "calibration_drift", + "ledger_value": 959563.0, + "name": "ons.population.age_20_29_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 74000.0, - "name": "hmrc/state_pension_count_income_band_100_000_to_150_000", + "fixture_value": 713000.0, + "kind": "calibration_drift", + "ledger_value": 706311.0, + "name": "ons.population.age_20_29_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1140000.0, - "name": "hmrc/state_pension_count_income_band_12_570_to_15_000", + "fixture_value": 614000.0, + "kind": "calibration_drift", + "ledger_value": 608545.0, + "name": "ons.population.age_20_29_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 21000.0, - "name": "hmrc/state_pension_count_income_band_150_000_to_200_000", + "fixture_value": 753000.0, + "kind": "calibration_drift", + "ledger_value": 746782.0, + "name": "ons.population.age_20_29_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2050000.0, - "name": "hmrc/state_pension_count_income_band_15_000_to_20_000", + "fixture_value": 729000.0, + "kind": "calibration_drift", + "ledger_value": 717130.0, + "name": "ons.population.age_20_29_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2000.0, - "name": "hmrc/state_pension_count_income_band_1_000_000_to_inf", + "fixture_value": 1429000.0, + "kind": "calibration_drift", + "ledger_value": 1444048.0, + "name": "ons.population.age_20_29_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 14000.0, - "name": "hmrc/state_pension_count_income_band_200_000_to_300_000", + "fixture_value": 1062000.0, + "kind": "calibration_drift", + "ledger_value": 1047994.0, + "name": "ons.population.age_20_29_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2320000.0, - "name": "hmrc/state_pension_count_income_band_20_000_to_30_000", + "fixture_value": 675000.0, + "kind": "calibration_drift", + "ledger_value": 670859.0, + "name": "ons.population.age_20_29_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 8000.0, - "name": "hmrc/state_pension_count_income_band_300_000_to_500_000", + "fixture_value": 224000.0, + "kind": "calibration_drift", + "ledger_value": 219166.0, + "name": "ons.population.age_20_29_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1160000.0, - "name": "hmrc/state_pension_count_income_band_30_000_to_40_000", + "fixture_value": 689000.0, + "kind": "calibration_drift", + "ledger_value": 690464.0, + "name": "ons.population.age_20_29_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 568000.0, - "name": "hmrc/state_pension_count_income_band_40_000_to_50_000", + "fixture_value": 378000.0, + "kind": "calibration_drift", + "ledger_value": 381438.0, + "name": "ons.population.age_20_29_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 3000.0, - "name": "hmrc/state_pension_count_income_band_500_000_to_1_000_000", + "fixture_value": 347000.0, + "kind": "calibration_drift", + "ledger_value": 350720.0, + "name": "ons.population.age_30_39_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 441000.0, - "name": "hmrc/state_pension_count_income_band_50_000_to_70_000", + "fixture_value": 1029000.0, + "kind": "calibration_drift", + "ledger_value": 1032427.0, + "name": "ons.population.age_30_39_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 176000.0, - "name": "hmrc/state_pension_count_income_band_70_000_to_100_000", + "fixture_value": 745000.0, + "kind": "calibration_drift", + "ledger_value": 749846.0, + "name": "ons.population.age_30_39_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 847000000.0, - "name": "hmrc/state_pension_income_band_100_000_to_150_000", + "fixture_value": 652000.0, + "kind": "calibration_drift", + "ledger_value": 656771.0, + "name": "ons.population.age_30_39_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 11800000000.0, - "name": "hmrc/state_pension_income_band_12_570_to_15_000", + "fixture_value": 813000.0, + "kind": "calibration_drift", + "ledger_value": 814710.0, + "name": "ons.population.age_30_39_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 265000000.0, - "name": "hmrc/state_pension_income_band_150_000_to_200_000", + "fixture_value": 868000.0, + "kind": "calibration_drift", + "ledger_value": 869971.0, + "name": "ons.population.age_30_39_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 22200000000.0, - "name": "hmrc/state_pension_income_band_15_000_to_20_000", + "fixture_value": 1545000.0, + "kind": "calibration_drift", + "ledger_value": 1516452.0, + "name": "ons.population.age_30_39_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 20000000.0, - "name": "hmrc/state_pension_income_band_1_000_000_to_inf", + "fixture_value": 1250000.0, + "kind": "calibration_drift", + "ledger_value": 1249719.0, + "name": "ons.population.age_30_39_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 179000000.0, - "name": "hmrc/state_pension_income_band_200_000_to_300_000", + "fixture_value": 724000.0, + "kind": "calibration_drift", + "ledger_value": 723707.0, + "name": "ons.population.age_30_39_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 24900000000.0, - "name": "hmrc/state_pension_income_band_20_000_to_30_000", + "fixture_value": 258000.0, + "kind": "calibration_drift", + "ledger_value": 254018.0, + "name": "ons.population.age_30_39_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 96000000.0, - "name": "hmrc/state_pension_income_band_300_000_to_500_000", + "fixture_value": 717000.0, + "kind": "calibration_drift", + "ledger_value": 718109.0, + "name": "ons.population.age_30_39_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 12300000000.0, - "name": "hmrc/state_pension_income_band_30_000_to_40_000", + "fixture_value": 398000.0, + "kind": "calibration_drift", + "ledger_value": 400341.0, + "name": "ons.population.age_30_39_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 6020000000.0, - "name": "hmrc/state_pension_income_band_40_000_to_50_000", + "fixture_value": 314000.0, + "kind": "calibration_drift", + "ledger_value": 312822.0, + "name": "ons.population.age_40_49_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 43000000.0, - "name": "hmrc/state_pension_income_band_500_000_to_1_000_000", + "fixture_value": 914000.0, + "kind": "calibration_drift", + "ledger_value": 909169.0, + "name": "ons.population.age_40_49_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 4660000000.0, - "name": "hmrc/state_pension_income_band_50_000_to_70_000", + "fixture_value": 668000.0, + "kind": "calibration_drift", + "ledger_value": 662244.0, + "name": "ons.population.age_40_49_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1890000000.0, - "name": "hmrc/state_pension_income_band_70_000_to_100_000", + "fixture_value": 605000.0, + "kind": "calibration_drift", + "ledger_value": 600162.0, + "name": "ons.population.age_40_49_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 99200000.0, - "name": "nithc.public_transport_support", + "fixture_value": 739000.0, + "kind": "calibration_drift", + "ledger_value": 733710.0, + "name": "ons.population.age_40_49_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 52505000000.0, - "name": "ons.household_energy_expenditure", + "fixture_value": 829000.0, + "kind": "calibration_drift", + "ledger_value": 822990.0, + "name": "ons.population.age_40_49_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 7497928.0, - "name": "ons.population.age_0_9_by_region", + "fixture_value": 1280000.0, + "kind": "calibration_drift", + "ledger_value": 1264515.0, + "name": "ons.population.age_40_49_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 8161755.0, - "name": "ons.population.age_10_19_by_region", + "fixture_value": 1241000.0, + "kind": "calibration_drift", + "ledger_value": 1233676.0, + "name": "ons.population.age_40_49_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 8525289.0, - "name": "ons.population.age_20_29_by_region", + "fixture_value": 686000.0, + "kind": "calibration_drift", + "ledger_value": 678388.0, + "name": "ons.population.age_40_49_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 9336791.0, - "name": "ons.population.age_30_39_by_region", + "fixture_value": 247000.0, + "kind": "calibration_drift", + "ledger_value": 244462.0, + "name": "ons.population.age_40_49_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 8489468.0, - "name": "ons.population.age_40_49_by_region", + "fixture_value": 673000.0, + "kind": "calibration_drift", + "ledger_value": 666581.0, + "name": "ons.population.age_40_49_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 9148143.0, - "name": "ons.population.age_50_59_by_region", + "fixture_value": 364000.0, + "kind": "calibration_drift", + "ledger_value": 360749.0, + "name": "ons.population.age_40_49_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 7671378.0, - "name": "ons.population.age_60_69_by_region", + "fixture_value": 371000.0, + "kind": "calibration_drift", + "ledger_value": 367103.0, + "name": "ons.population.age_50_59_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 5963774.0, - "name": "ons.population.age_70_79_by_region", + "fixture_value": 1018000.0, + "kind": "calibration_drift", + "ledger_value": 1011356.0, + "name": "ons.population.age_50_59_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2858964.0, - "name": "ons.population.age_80_89_by_region", + "fixture_value": 751000.0, + "kind": "calibration_drift", + "ledger_value": 747499.0, + "name": "ons.population.age_50_59_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1742660.0, - "name": "ons.population.female_0_4", + "fixture_value": 686000.0, + "kind": "calibration_drift", + "ledger_value": 684525.0, + "name": "ons.population.age_50_59_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2025209.0, - "name": "ons.population.female_10_14", + "fixture_value": 805000.0, + "kind": "calibration_drift", + "ledger_value": 804649.0, + "name": "ons.population.age_50_59_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1947075.0, - "name": "ons.population.female_15_19", + "fixture_value": 873000.0, + "kind": "calibration_drift", + "ledger_value": 873937.0, + "name": "ons.population.age_50_59_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2008105.0, - "name": "ons.population.female_20_24", + "fixture_value": 1086000.0, + "kind": "calibration_drift", + "ledger_value": 1090827.0, + "name": "ons.population.age_50_59_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2232408.0, - "name": "ons.population.female_25_29", + "fixture_value": 1296000.0, + "kind": "calibration_drift", + "ledger_value": 1296339.0, + "name": "ons.population.age_50_59_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2417082.0, - "name": "ons.population.female_30_34", + "fixture_value": 800000.0, + "kind": "calibration_drift", + "ledger_value": 796631.0, + "name": "ons.population.age_50_59_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2396290.0, - "name": "ons.population.female_35_39", + "fixture_value": 258000.0, + "kind": "calibration_drift", + "ledger_value": 258467.0, + "name": "ons.population.age_50_59_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2282889.0, - "name": "ons.population.female_40_44", + "fixture_value": 793000.0, + "kind": "calibration_drift", + "ledger_value": 783721.0, + "name": "ons.population.age_50_59_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2056833.0, - "name": "ons.population.female_45_49", + "fixture_value": 436000.0, + "kind": "calibration_drift", + "ledger_value": 433089.0, + "name": "ons.population.age_50_59_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2304569.0, - "name": "ons.population.female_50_54", + "fixture_value": 341000.0, + "kind": "calibration_drift", + "ledger_value": 342756.0, + "name": "ons.population.age_60_69_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2360196.0, - "name": "ons.population.female_55_59", + "fixture_value": 858000.0, + "kind": "calibration_drift", + "ledger_value": 862704.0, + "name": "ons.population.age_60_69_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1916898.0, - "name": "ons.population.female_5_9", + "fixture_value": 635000.0, + "kind": "calibration_drift", + "ledger_value": 638531.0, + "name": "ons.population.age_60_69_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2133183.0, - "name": "ons.population.female_60_64", + "fixture_value": 572000.0, + "kind": "calibration_drift", + "ledger_value": 576856.0, + "name": "ons.population.age_60_69_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1794961.0, - "name": "ons.population.female_65_69", + "fixture_value": 661000.0, + "kind": "calibration_drift", + "ledger_value": 663774.0, + "name": "ons.population.age_60_69_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1633749.0, - "name": "ons.population.female_70_74", + "fixture_value": 721000.0, + "kind": "calibration_drift", + "ledger_value": 726180.0, + "name": "ons.population.age_60_69_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1518990.0, - "name": "ons.population.female_75_79", + "fixture_value": 751000.0, + "kind": "calibration_drift", + "ledger_value": 762738.0, + "name": "ons.population.age_60_69_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 985351.0, - "name": "ons.population.female_80_84", + "fixture_value": 1052000.0, + "kind": "calibration_drift", + "ledger_value": 1060436.0, + "name": "ons.population.age_60_69_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 650117.0, - "name": "ons.population.female_85_89", + "fixture_value": 716000.0, + "kind": "calibration_drift", + "ledger_value": 719639.0, + "name": "ons.population.age_60_69_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 408216.0, - "name": "ons.population.female_90_plus", + "fixture_value": 217000.0, + "kind": "calibration_drift", + "ledger_value": 218137.0, + "name": "ons.population.age_60_69_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1829347.0, - "name": "ons.population.male_0_4", + "fixture_value": 702000.0, + "kind": "calibration_drift", + "ledger_value": 706151.0, + "name": "ons.population.age_60_69_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2125078.0, - "name": "ons.population.male_10_14", + "fixture_value": 393000.0, + "kind": "calibration_drift", + "ledger_value": 393476.0, + "name": "ons.population.age_60_69_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2064393.0, - "name": "ons.population.male_15_19", + "fixture_value": 264000.0, + "kind": "calibration_drift", + "ledger_value": 261974.0, + "name": "ons.population.age_70_79_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2089437.0, - "name": "ons.population.male_20_24", + "fixture_value": 680000.0, + "kind": "calibration_drift", + "ledger_value": 666252.0, + "name": "ons.population.age_70_79_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2195339.0, - "name": "ons.population.male_25_29", + "fixture_value": 510000.0, + "kind": "calibration_drift", + "ledger_value": 500504.0, + "name": "ons.population.age_70_79_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2283116.0, - "name": "ons.population.male_30_34", + "fixture_value": 475000.0, + "kind": "calibration_drift", + "ledger_value": 465125.0, + "name": "ons.population.age_70_79_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2240303.0, - "name": "ons.population.male_35_39", + "fixture_value": 542000.0, + "kind": "calibration_drift", + "ledger_value": 528806.0, + "name": "ons.population.age_70_79_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2163337.0, - "name": "ons.population.male_40_44", + "fixture_value": 612000.0, + "kind": "calibration_drift", + "ledger_value": 597762.0, + "name": "ons.population.age_70_79_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1986409.0, - "name": "ons.population.male_45_49", + "fixture_value": 484000.0, + "kind": "calibration_drift", + "ledger_value": 477581.0, + "name": "ons.population.age_70_79_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2218309.0, - "name": "ons.population.male_50_54", + "fixture_value": 882000.0, + "kind": "calibration_drift", + "ledger_value": 862580.0, + "name": "ons.population.age_70_79_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2265069.0, - "name": "ons.population.male_55_59", + "fixture_value": 630000.0, + "kind": "calibration_drift", + "ledger_value": 616535.0, + "name": "ons.population.age_70_79_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2009023.0, - "name": "ons.population.male_5_9", + "fixture_value": 157000.0, + "kind": "calibration_drift", + "ledger_value": 154231.0, + "name": "ons.population.age_70_79_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 2048486.0, - "name": "ons.population.male_60_64", + "fixture_value": 520000.0, + "kind": "calibration_drift", + "ledger_value": 512152.0, + "name": "ons.population.age_70_79_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1694748.0, - "name": "ons.population.male_65_69", + "fixture_value": 327000.0, + "kind": "calibration_drift", + "ledger_value": 320272.0, + "name": "ons.population.age_70_79_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1486710.0, - "name": "ons.population.male_70_74", + "fixture_value": 145000.0, + "kind": "calibration_drift", + "ledger_value": 118542.0, + "name": "ons.population.age_80_89_by_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 1324325.0, - "name": "ons.population.male_75_79", + "fixture_value": 379000.0, + "kind": "calibration_drift", + "ledger_value": 313411.0, + "name": "ons.population.age_80_89_by_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 777961.0, - "name": "ons.population.male_80_84", + "fixture_value": 287000.0, + "kind": "calibration_drift", + "ledger_value": 235572.0, + "name": "ons.population.age_80_89_by_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 445535.0, - "name": "ons.population.male_85_89", + "fixture_value": 260000.0, + "kind": "calibration_drift", + "ledger_value": 215547.0, + "name": "ons.population.age_80_89_by_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 203503.0, - "name": "ons.population.male_90_plus", + "fixture_value": 321000.0, + "kind": "calibration_drift", + "ledger_value": 264102.0, + "name": "ons.population.age_80_89_by_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 68265209.0, - "name": "ons.population.uk_total", + "fixture_value": 360000.0, + "kind": "calibration_drift", + "ledger_value": 293202.0, + "name": "ons.population.age_80_89_by_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 23120884840.50285, - "name": "orr.rail_government_support", + "fixture_value": 289000.0, + "kind": "calibration_drift", + "ledger_value": 231678.0, + "name": "ons.population.age_80_89_by_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 438893000.0, - "name": "scotgov.bus.government_support", + "fixture_value": 531000.0, + "kind": "calibration_drift", + "ledger_value": 429759.0, + "name": "ons.population.age_80_89_by_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "kind": "ledger_only", - "ledger_value": 97426240.0, - "name": "welshgov.bus.public_support", + "fixture_value": 369000.0, + "kind": "calibration_drift", + "ledger_value": 299993.0, + "name": "ons.population.age_80_89_by_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 557000.0, + "fixture_value": 89000.0, "kind": "calibration_drift", - "ledger_value": 554243.0, - "name": "isc.private_school_students", + "ledger_value": 74648.0, + "name": "ons.population.age_80_89_by_region@N92000002", "period": 2023, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 1957550396058.5835, + "fixture_value": 282000.0, "kind": "calibration_drift", - "ledger_value": 1976893000000.0, - "name": "ons.land.corporate_land_value", + "ledger_value": 233342.0, + "name": "ons.population.age_80_89_by_region@S92000003", "period": 2023, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { - "fixture_value": 4798764603941.416, + "fixture_value": 181000.0, "kind": "calibration_drift", - "ledger_value": 4383082000000.0, - "name": "ons.land.household_land_value", + "ledger_value": 149168.0, + "name": "ons.population.age_80_89_by_region@W92000004", "period": 2023, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + "reason": "Region-tier ONS population cell (microcosm#905): the Ledger row binds the ONS mid-year estimate by single year of age at Chronicle's region or country stamp, held to the comparison period as identity, while the incumbent's regional row is an ONS subnational projection rounded to the nearest thousand. The difference is projection-versus-estimate vintage and rounding, never area or band definition: the nine English regions and three nations sum exactly to the retired UK-wide row of the same publication." }, { "fixture_value": 46000.0, diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_area_crosswalk.json b/packages/microcosm-build/src/microcosm/build/uk/local_area_crosswalk.json index 4661ce3f1..3281bfb8a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_area_crosswalk.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_area_crosswalk.json @@ -688,7 +688,659 @@ "W07000110", "W07000111", "W07000112" - ] + ], + "region_code_by_area": { + "E14001063": "E12000008", + "E14001064": "E12000005", + "E14001065": "E12000002", + "E14001066": "E12000004", + "E14001067": "E12000008", + "E14001068": "E12000004", + "E14001069": "E12000008", + "E14001070": "E12000002", + "E14001071": "E12000008", + "E14001072": "E12000008", + "E14001073": "E12000007", + "E14001074": "E12000003", + "E14001075": "E12000003", + "E14001076": "E12000002", + "E14001077": "E12000006", + "E14001078": "E12000008", + "E14001079": "E12000004", + "E14001080": "E12000009", + "E14001081": "E12000007", + "E14001082": "E12000008", + "E14001083": "E12000007", + "E14001084": "E12000006", + "E14001085": "E12000007", + "E14001086": "E12000007", + "E14001087": "E12000003", + "E14001088": "E12000008", + "E14001089": "E12000007", + "E14001090": "E12000008", + "E14001091": "E12000002", + "E14001092": "E12000005", + "E14001093": "E12000005", + "E14001094": "E12000005", + "E14001095": "E12000005", + "E14001096": "E12000005", + "E14001097": "E12000005", + "E14001098": "E12000005", + "E14001099": "E12000005", + "E14001100": "E12000005", + "E14001101": "E12000001", + "E14001102": "E12000002", + "E14001103": "E12000002", + "E14001104": "E12000002", + "E14001105": "E12000002", + "E14001106": "E12000001", + "E14001107": "E12000001", + "E14001108": "E12000008", + "E14001109": "E12000004", + "E14001110": "E12000002", + "E14001111": "E12000002", + "E14001112": "E12000002", + "E14001113": "E12000002", + "E14001114": "E12000004", + "E14001115": "E12000009", + "E14001116": "E12000009", + "E14001117": "E12000008", + "E14001118": "E12000003", + "E14001119": "E12000003", + "E14001120": "E12000003", + "E14001121": "E12000006", + "E14001122": "E12000007", + "E14001123": "E12000007", + "E14001124": "E12000007", + "E14001125": "E12000006", + "E14001126": "E12000009", + "E14001127": "E12000003", + "E14001128": "E12000003", + "E14001129": "E12000008", + "E14001130": "E12000008", + "E14001131": "E12000009", + "E14001132": "E12000009", + "E14001133": "E12000009", + "E14001134": "E12000009", + "E14001135": "E12000009", + "E14001136": "E12000006", + "E14001137": "E12000007", + "E14001138": "E12000005", + "E14001139": "E12000006", + "E14001140": "E12000004", + "E14001141": "E12000008", + "E14001142": "E12000002", + "E14001143": "E12000005", + "E14001144": "E12000002", + "E14001145": "E12000002", + "E14001146": "E12000006", + "E14001147": "E12000003", + "E14001148": "E12000009", + "E14001149": "E12000006", + "E14001150": "E12000005", + "E14001151": "E12000008", + "E14001152": "E12000002", + "E14001153": "E12000007", + "E14001154": "E12000006", + "E14001155": "E12000009", + "E14001156": "E12000006", + "E14001157": "E12000008", + "E14001158": "E12000002", + "E14001159": "E12000006", + "E14001160": "E12000007", + "E14001161": "E12000009", + "E14001162": "E12000008", + "E14001163": "E12000002", + "E14001164": "E12000002", + "E14001165": "E12000004", + "E14001166": "E12000008", + "E14001167": "E12000007", + "E14001168": "E12000009", + "E14001169": "E12000007", + "E14001170": "E12000002", + "E14001171": "E12000009", + "E14001172": "E12000007", + "E14001173": "E12000001", + "E14001174": "E12000006", + "E14001175": "E12000007", + "E14001176": "E12000006", + "E14001177": "E12000003", + "E14001178": "E12000002", + "E14001179": "E12000004", + "E14001180": "E12000005", + "E14001181": "E12000005", + "E14001182": "E12000005", + "E14001183": "E12000001", + "E14001184": "E12000008", + "E14001185": "E12000002", + "E14001186": "E12000007", + "E14001187": "E12000007", + "E14001188": "E12000007", + "E14001189": "E12000007", + "E14001190": "E12000001", + "E14001191": "E12000008", + "E14001192": "E12000004", + "E14001193": "E12000004", + "E14001194": "E12000004", + "E14001195": "E12000004", + "E14001196": "E12000003", + "E14001197": "E12000008", + "E14001198": "E12000003", + "E14001199": "E12000003", + "E14001200": "E12000003", + "E14001201": "E12000008", + "E14001202": "E12000008", + "E14001203": "E12000005", + "E14001204": "E12000005", + "E14001205": "E12000007", + "E14001206": "E12000006", + "E14001207": "E12000007", + "E14001208": "E12000007", + "E14001209": "E12000007", + "E14001210": "E12000008", + "E14001211": "E12000001", + "E14001212": "E12000008", + "E14001213": "E12000007", + "E14001214": "E12000008", + "E14001215": "E12000008", + "E14001216": "E12000008", + "E14001217": "E12000009", + "E14001218": "E12000008", + "E14001219": "E12000008", + "E14001220": "E12000008", + "E14001221": "E12000007", + "E14001222": "E12000002", + "E14001223": "E12000007", + "E14001224": "E12000006", + "E14001225": "E12000007", + "E14001226": "E12000006", + "E14001227": "E12000008", + "E14001228": "E12000004", + "E14001229": "E12000007", + "E14001230": "E12000008", + "E14001231": "E12000009", + "E14001232": "E12000009", + "E14001233": "E12000008", + "E14001234": "E12000008", + "E14001235": "E12000008", + "E14001236": "E12000007", + "E14001237": "E12000009", + "E14001238": "E12000007", + "E14001239": "E12000008", + "E14001240": "E12000009", + "E14001241": "E12000009", + "E14001242": "E12000002", + "E14001243": "E12000004", + "E14001244": "E12000001", + "E14001245": "E12000004", + "E14001246": "E12000008", + "E14001247": "E12000009", + "E14001248": "E12000009", + "E14001249": "E12000008", + "E14001250": "E12000003", + "E14001251": "E12000002", + "E14001252": "E12000008", + "E14001253": "E12000004", + "E14001254": "E12000008", + "E14001255": "E12000003", + "E14001256": "E12000006", + "E14001257": "E12000007", + "E14001258": "E12000008", + "E14001259": "E12000007", + "E14001260": "E12000007", + "E14001261": "E12000005", + "E14001262": "E12000003", + "E14001263": "E12000008", + "E14001264": "E12000007", + "E14001265": "E12000007", + "E14001266": "E12000004", + "E14001267": "E12000006", + "E14001268": "E12000006", + "E14001269": "E12000003", + "E14001270": "E12000007", + "E14001271": "E12000007", + "E14001272": "E12000001", + "E14001273": "E12000006", + "E14001274": "E12000008", + "E14001275": "E12000008", + "E14001276": "E12000007", + "E14001277": "E12000002", + "E14001278": "E12000006", + "E14001279": "E12000007", + "E14001280": "E12000008", + "E14001281": "E12000005", + "E14001282": "E12000008", + "E14001283": "E12000006", + "E14001284": "E12000006", + "E14001285": "E12000001", + "E14001286": "E12000002", + "E14001287": "E12000004", + "E14001288": "E12000004", + "E14001289": "E12000006", + "E14001290": "E12000007", + "E14001291": "E12000009", + "E14001292": "E12000007", + "E14001293": "E12000007", + "E14001294": "E12000008", + "E14001295": "E12000001", + "E14001296": "E12000008", + "E14001297": "E12000003", + "E14001298": "E12000006", + "E14001299": "E12000002", + "E14001300": "E12000007", + "E14001301": "E12000007", + "E14001302": "E12000006", + "E14001303": "E12000008", + "E14001304": "E12000008", + "E14001305": "E12000007", + "E14001306": "E12000007", + "E14001307": "E12000001", + "E14001308": "E12000003", + "E14001309": "E12000005", + "E14001310": "E12000007", + "E14001311": "E12000004", + "E14001312": "E12000007", + "E14001313": "E12000003", + "E14001314": "E12000003", + "E14001315": "E12000003", + "E14001316": "E12000005", + "E14001317": "E12000002", + "E14001318": "E12000002", + "E14001319": "E12000003", + "E14001320": "E12000003", + "E14001321": "E12000003", + "E14001322": "E12000003", + "E14001323": "E12000003", + "E14001324": "E12000003", + "E14001325": "E12000003", + "E14001326": "E12000004", + "E14001327": "E12000004", + "E14001328": "E12000004", + "E14001329": "E12000002", + "E14001330": "E12000008", + "E14001331": "E12000007", + "E14001332": "E12000007", + "E14001333": "E12000007", + "E14001334": "E12000007", + "E14001335": "E12000005", + "E14001336": "E12000004", + "E14001337": "E12000002", + "E14001338": "E12000002", + "E14001339": "E12000002", + "E14001340": "E12000002", + "E14001341": "E12000002", + "E14001342": "E12000004", + "E14001343": "E12000004", + "E14001344": "E12000006", + "E14001345": "E12000006", + "E14001346": "E12000006", + "E14001347": "E12000002", + "E14001348": "E12000008", + "E14001349": "E12000008", + "E14001350": "E12000002", + "E14001351": "E12000006", + "E14001352": "E12000002", + "E14001353": "E12000002", + "E14001354": "E12000002", + "E14001355": "E12000004", + "E14001356": "E12000009", + "E14001357": "E12000004", + "E14001358": "E12000005", + "E14001359": "E12000006", + "E14001360": "E12000008", + "E14001361": "E12000002", + "E14001362": "E12000004", + "E14001363": "E12000009", + "E14001364": "E12000004", + "E14001365": "E12000006", + "E14001366": "E12000008", + "E14001367": "E12000001", + "E14001368": "E12000001", + "E14001369": "E12000008", + "E14001370": "E12000008", + "E14001371": "E12000007", + "E14001372": "E12000002", + "E14001373": "E12000008", + "E14001374": "E12000008", + "E14001375": "E12000004", + "E14001376": "E12000008", + "E14001377": "E12000001", + "E14001378": "E12000001", + "E14001379": "E12000001", + "E14001380": "E12000005", + "E14001381": "E12000009", + "E14001382": "E12000001", + "E14001383": "E12000003", + "E14001384": "E12000006", + "E14001385": "E12000009", + "E14001386": "E12000009", + "E14001387": "E12000009", + "E14001388": "E12000009", + "E14001389": "E12000001", + "E14001390": "E12000006", + "E14001391": "E12000004", + "E14001392": "E12000008", + "E14001393": "E12000006", + "E14001394": "E12000009", + "E14001395": "E12000005", + "E14001396": "E12000006", + "E14001397": "E12000001", + "E14001398": "E12000005", + "E14001399": "E12000009", + "E14001400": "E12000005", + "E14001401": "E12000006", + "E14001402": "E12000006", + "E14001403": "E12000008", + "E14001404": "E12000004", + "E14001405": "E12000006", + "E14001406": "E12000004", + "E14001407": "E12000004", + "E14001408": "E12000006", + "E14001409": "E12000006", + "E14001410": "E12000004", + "E14001411": "E12000004", + "E14001412": "E12000004", + "E14001413": "E12000005", + "E14001414": "E12000007", + "E14001415": "E12000002", + "E14001416": "E12000002", + "E14001417": "E12000007", + "E14001418": "E12000003", + "E14001419": "E12000008", + "E14001420": "E12000008", + "E14001421": "E12000007", + "E14001422": "E12000002", + "E14001423": "E12000003", + "E14001424": "E12000002", + "E14001425": "E12000006", + "E14001426": "E12000009", + "E14001427": "E12000009", + "E14001428": "E12000003", + "E14001429": "E12000009", + "E14001430": "E12000007", + "E14001431": "E12000008", + "E14001432": "E12000008", + "E14001433": "E12000002", + "E14001434": "E12000007", + "E14001435": "E12000007", + "E14001436": "E12000003", + "E14001437": "E12000006", + "E14001438": "E12000008", + "E14001439": "E12000008", + "E14001440": "E12000001", + "E14001441": "E12000005", + "E14001442": "E12000008", + "E14001443": "E12000002", + "E14001444": "E12000003", + "E14001445": "E12000007", + "E14001446": "E12000002", + "E14001447": "E12000008", + "E14001448": "E12000007", + "E14001449": "E12000008", + "E14001450": "E12000002", + "E14001451": "E12000003", + "E14001452": "E12000003", + "E14001453": "E12000005", + "E14001454": "E12000007", + "E14001455": "E12000002", + "E14001456": "E12000008", + "E14001457": "E12000004", + "E14001458": "E12000004", + "E14001459": "E12000002", + "E14001460": "E12000009", + "E14001461": "E12000003", + "E14001462": "E12000003", + "E14001463": "E12000002", + "E14001464": "E12000003", + "E14001465": "E12000008", + "E14001466": "E12000003", + "E14001467": "E12000003", + "E14001468": "E12000003", + "E14001469": "E12000003", + "E14001470": "E12000003", + "E14001471": "E12000004", + "E14001472": "E12000003", + "E14001473": "E12000005", + "E14001474": "E12000008", + "E14001475": "E12000003", + "E14001476": "E12000004", + "E14001477": "E12000008", + "E14001478": "E12000005", + "E14001479": "E12000005", + "E14001480": "E12000006", + "E14001481": "E12000006", + "E14001482": "E12000009", + "E14001483": "E12000004", + "E14001484": "E12000009", + "E14001485": "E12000009", + "E14001486": "E12000009", + "E14001487": "E12000004", + "E14001488": "E12000004", + "E14001489": "E12000006", + "E14001490": "E12000004", + "E14001491": "E12000002", + "E14001492": "E12000001", + "E14001493": "E12000005", + "E14001494": "E12000006", + "E14001495": "E12000009", + "E14001496": "E12000006", + "E14001497": "E12000006", + "E14001498": "E12000009", + "E14001499": "E12000008", + "E14001500": "E12000008", + "E14001501": "E12000006", + "E14001502": "E12000006", + "E14001503": "E12000007", + "E14001504": "E12000002", + "E14001505": "E12000008", + "E14001506": "E12000003", + "E14001507": "E12000006", + "E14001508": "E12000009", + "E14001509": "E12000002", + "E14001510": "E12000002", + "E14001511": "E12000009", + "E14001512": "E12000006", + "E14001513": "E12000005", + "E14001514": "E12000005", + "E14001515": "E12000002", + "E14001516": "E12000006", + "E14001517": "E12000002", + "E14001518": "E12000001", + "E14001519": "E12000001", + "E14001520": "E12000005", + "E14001521": "E12000005", + "E14001522": "E12000005", + "E14001523": "E12000005", + "E14001524": "E12000005", + "E14001525": "E12000007", + "E14001526": "E12000005", + "E14001527": "E12000007", + "E14001528": "E12000002", + "E14001529": "E12000009", + "E14001530": "E12000006", + "E14001531": "E12000001", + "E14001532": "E12000008", + "E14001533": "E12000008", + "E14001534": "E12000007", + "E14001535": "E12000005", + "E14001536": "E12000009", + "E14001537": "E12000009", + "E14001538": "E12000005", + "E14001539": "E12000002", + "E14001540": "E12000009", + "E14001541": "E12000005", + "E14001542": "E12000009", + "E14001543": "E12000005", + "E14001544": "E12000003", + "E14001545": "E12000009", + "E14001546": "E12000006", + "E14001547": "E12000005", + "E14001548": "E12000009", + "E14001549": "E12000008", + "E14001550": "E12000007", + "E14001551": "E12000009", + "E14001552": "E12000009", + "E14001553": "E12000007", + "E14001554": "E12000009", + "E14001555": "E12000008", + "E14001556": "E12000007", + "E14001557": "E12000001", + "E14001558": "E12000007", + "E14001559": "E12000007", + "E14001560": "E12000003", + "E14001561": "E12000002", + "E14001562": "E12000005", + "E14001563": "E12000007", + "E14001564": "E12000002", + "E14001565": "E12000002", + "E14001566": "E12000005", + "E14001567": "E12000001", + "E14001568": "E12000006", + "E14001569": "E12000006", + "E14001570": "E12000008", + "E14001571": "E12000004", + "E14001572": "E12000009", + "E14001573": "E12000006", + "E14001574": "E12000005", + "E14001575": "E12000009", + "E14001576": "E12000007", + "E14001577": "E12000002", + "E14001578": "E12000006", + "E14001579": "E12000005", + "E14001580": "E12000002", + "E14001581": "E12000009", + "E14001582": "E12000003", + "E14001583": "E12000002", + "E14001584": "E12000002", + "E14001585": "E12000002", + "E14001586": "E12000007", + "E14001587": "E12000008", + "E14001588": "E12000008", + "E14001589": "E12000002", + "E14001590": "E12000006", + "E14001591": "E12000008", + "E14001592": "E12000008", + "E14001593": "E12000008", + "E14001594": "E12000005", + "E14001595": "E12000005", + "E14001596": "E12000005", + "E14001597": "E12000005", + "E14001598": "E12000002", + "E14001599": "E12000008", + "E14001600": "E12000008", + "E14001601": "E12000005", + "E14001602": "E12000002", + "E14001603": "E12000009", + "E14001604": "E12000003", + "E14001605": "E12000003", + "N05000001": "N92000002", + "N05000002": "N92000002", + "N05000003": "N92000002", + "N05000004": "N92000002", + "N05000005": "N92000002", + "N05000006": "N92000002", + "N05000007": "N92000002", + "N05000008": "N92000002", + "N05000009": "N92000002", + "N05000010": "N92000002", + "N05000011": "N92000002", + "N05000012": "N92000002", + "N05000013": "N92000002", + "N05000014": "N92000002", + "N05000015": "N92000002", + "N05000016": "N92000002", + "N05000017": "N92000002", + "N05000018": "N92000002", + "S14000021": "S92000003", + "S14000027": "S92000003", + "S14000045": "S92000003", + "S14000048": "S92000003", + "S14000051": "S92000003", + "S14000060": "S92000003", + "S14000061": "S92000003", + "S14000062": "S92000003", + "S14000063": "S92000003", + "S14000064": "S92000003", + "S14000065": "S92000003", + "S14000066": "S92000003", + "S14000067": "S92000003", + "S14000068": "S92000003", + "S14000069": "S92000003", + "S14000070": "S92000003", + "S14000071": "S92000003", + "S14000072": "S92000003", + "S14000073": "S92000003", + "S14000074": "S92000003", + "S14000075": "S92000003", + "S14000076": "S92000003", + "S14000077": "S92000003", + "S14000078": "S92000003", + "S14000079": "S92000003", + "S14000080": "S92000003", + "S14000081": "S92000003", + "S14000082": "S92000003", + "S14000083": "S92000003", + "S14000084": "S92000003", + "S14000085": "S92000003", + "S14000086": "S92000003", + "S14000087": "S92000003", + "S14000088": "S92000003", + "S14000089": "S92000003", + "S14000090": "S92000003", + "S14000091": "S92000003", + "S14000092": "S92000003", + "S14000093": "S92000003", + "S14000094": "S92000003", + "S14000095": "S92000003", + "S14000096": "S92000003", + "S14000097": "S92000003", + "S14000098": "S92000003", + "S14000099": "S92000003", + "S14000100": "S92000003", + "S14000101": "S92000003", + "S14000102": "S92000003", + "S14000103": "S92000003", + "S14000104": "S92000003", + "S14000105": "S92000003", + "S14000106": "S92000003", + "S14000107": "S92000003", + "S14000108": "S92000003", + "S14000109": "S92000003", + "S14000110": "S92000003", + "S14000111": "S92000003", + "W07000081": "W92000004", + "W07000082": "W92000004", + "W07000083": "W92000004", + "W07000084": "W92000004", + "W07000085": "W92000004", + "W07000086": "W92000004", + "W07000087": "W92000004", + "W07000088": "W92000004", + "W07000089": "W92000004", + "W07000090": "W92000004", + "W07000091": "W92000004", + "W07000092": "W92000004", + "W07000093": "W92000004", + "W07000094": "W92000004", + "W07000095": "W92000004", + "W07000096": "W92000004", + "W07000097": "W92000004", + "W07000098": "W92000004", + "W07000099": "W92000004", + "W07000100": "W92000004", + "W07000101": "W92000004", + "W07000102": "W92000004", + "W07000103": "W92000004", + "W07000104": "W92000004", + "W07000105": "W92000004", + "W07000106": "W92000004", + "W07000107": "W92000004", + "W07000108": "W92000004", + "W07000109": "W92000004", + "W07000110": "W92000004", + "W07000111": "W92000004", + "W07000112": "W92000004" + } }, "local_authority": { "ledger_geography_level": "local_authority", @@ -1094,7 +1746,370 @@ "W06000022", "W06000023", "W06000024" - ] + ], + "region_code_by_area": { + "E06000001": "E12000001", + "E06000002": "E12000001", + "E06000003": "E12000001", + "E06000004": "E12000001", + "E06000005": "E12000001", + "E06000006": "E12000002", + "E06000007": "E12000002", + "E06000008": "E12000002", + "E06000009": "E12000002", + "E06000010": "E12000003", + "E06000011": "E12000003", + "E06000012": "E12000003", + "E06000013": "E12000003", + "E06000014": "E12000003", + "E06000015": "E12000004", + "E06000016": "E12000004", + "E06000017": "E12000004", + "E06000018": "E12000004", + "E06000019": "E12000005", + "E06000020": "E12000005", + "E06000021": "E12000005", + "E06000022": "E12000009", + "E06000023": "E12000009", + "E06000024": "E12000009", + "E06000025": "E12000009", + "E06000026": "E12000009", + "E06000027": "E12000009", + "E06000030": "E12000009", + "E06000031": "E12000006", + "E06000032": "E12000006", + "E06000033": "E12000006", + "E06000034": "E12000006", + "E06000035": "E12000008", + "E06000036": "E12000008", + "E06000037": "E12000008", + "E06000038": "E12000008", + "E06000039": "E12000008", + "E06000040": "E12000008", + "E06000041": "E12000008", + "E06000042": "E12000008", + "E06000043": "E12000008", + "E06000044": "E12000008", + "E06000045": "E12000008", + "E06000046": "E12000008", + "E06000047": "E12000001", + "E06000049": "E12000002", + "E06000050": "E12000002", + "E06000051": "E12000005", + "E06000052": "E12000009", + "E06000053": "E12000009", + "E06000054": "E12000009", + "E06000055": "E12000006", + "E06000056": "E12000006", + "E06000057": "E12000001", + "E06000058": "E12000009", + "E06000059": "E12000009", + "E06000060": "E12000008", + "E06000061": "E12000004", + "E06000062": "E12000004", + "E06000063": "E12000002", + "E06000064": "E12000002", + "E06000065": "E12000003", + "E06000066": "E12000009", + "E07000008": "E12000006", + "E07000009": "E12000006", + "E07000010": "E12000006", + "E07000011": "E12000006", + "E07000012": "E12000006", + "E07000032": "E12000004", + "E07000033": "E12000004", + "E07000034": "E12000004", + "E07000035": "E12000004", + "E07000036": "E12000004", + "E07000037": "E12000004", + "E07000038": "E12000004", + "E07000039": "E12000004", + "E07000040": "E12000009", + "E07000041": "E12000009", + "E07000042": "E12000009", + "E07000043": "E12000009", + "E07000044": "E12000009", + "E07000045": "E12000009", + "E07000046": "E12000009", + "E07000047": "E12000009", + "E07000061": "E12000008", + "E07000062": "E12000008", + "E07000063": "E12000008", + "E07000064": "E12000008", + "E07000065": "E12000008", + "E07000066": "E12000006", + "E07000067": "E12000006", + "E07000068": "E12000006", + "E07000069": "E12000006", + "E07000070": "E12000006", + "E07000071": "E12000006", + "E07000072": "E12000006", + "E07000073": "E12000006", + "E07000074": "E12000006", + "E07000075": "E12000006", + "E07000076": "E12000006", + "E07000077": "E12000006", + "E07000078": "E12000009", + "E07000079": "E12000009", + "E07000080": "E12000009", + "E07000081": "E12000009", + "E07000082": "E12000009", + "E07000083": "E12000009", + "E07000084": "E12000008", + "E07000085": "E12000008", + "E07000086": "E12000008", + "E07000087": "E12000008", + "E07000088": "E12000008", + "E07000089": "E12000008", + "E07000090": "E12000008", + "E07000091": "E12000008", + "E07000092": "E12000008", + "E07000093": "E12000008", + "E07000094": "E12000008", + "E07000095": "E12000006", + "E07000096": "E12000006", + "E07000098": "E12000006", + "E07000099": "E12000006", + "E07000102": "E12000006", + "E07000103": "E12000006", + "E07000105": "E12000008", + "E07000106": "E12000008", + "E07000107": "E12000008", + "E07000108": "E12000008", + "E07000109": "E12000008", + "E07000110": "E12000008", + "E07000111": "E12000008", + "E07000112": "E12000008", + "E07000113": "E12000008", + "E07000114": "E12000008", + "E07000115": "E12000008", + "E07000116": "E12000008", + "E07000117": "E12000002", + "E07000118": "E12000002", + "E07000119": "E12000002", + "E07000120": "E12000002", + "E07000121": "E12000002", + "E07000122": "E12000002", + "E07000123": "E12000002", + "E07000124": "E12000002", + "E07000125": "E12000002", + "E07000126": "E12000002", + "E07000127": "E12000002", + "E07000128": "E12000002", + "E07000129": "E12000004", + "E07000130": "E12000004", + "E07000131": "E12000004", + "E07000132": "E12000004", + "E07000133": "E12000004", + "E07000134": "E12000004", + "E07000135": "E12000004", + "E07000136": "E12000004", + "E07000137": "E12000004", + "E07000138": "E12000004", + "E07000139": "E12000004", + "E07000140": "E12000004", + "E07000141": "E12000004", + "E07000142": "E12000004", + "E07000143": "E12000006", + "E07000144": "E12000006", + "E07000145": "E12000006", + "E07000146": "E12000006", + "E07000147": "E12000006", + "E07000148": "E12000006", + "E07000149": "E12000006", + "E07000170": "E12000004", + "E07000171": "E12000004", + "E07000172": "E12000004", + "E07000173": "E12000004", + "E07000174": "E12000004", + "E07000175": "E12000004", + "E07000176": "E12000004", + "E07000177": "E12000008", + "E07000178": "E12000008", + "E07000179": "E12000008", + "E07000180": "E12000008", + "E07000181": "E12000008", + "E07000192": "E12000005", + "E07000193": "E12000005", + "E07000194": "E12000005", + "E07000195": "E12000005", + "E07000196": "E12000005", + "E07000197": "E12000005", + "E07000198": "E12000005", + "E07000199": "E12000005", + "E07000200": "E12000006", + "E07000202": "E12000006", + "E07000203": "E12000006", + "E07000207": "E12000008", + "E07000208": "E12000008", + "E07000209": "E12000008", + "E07000210": "E12000008", + "E07000211": "E12000008", + "E07000212": "E12000008", + "E07000213": "E12000008", + "E07000214": "E12000008", + "E07000215": "E12000008", + "E07000216": "E12000008", + "E07000217": "E12000008", + "E07000218": "E12000005", + "E07000219": "E12000005", + "E07000220": "E12000005", + "E07000221": "E12000005", + "E07000222": "E12000005", + "E07000223": "E12000008", + "E07000224": "E12000008", + "E07000225": "E12000008", + "E07000226": "E12000008", + "E07000227": "E12000008", + "E07000228": "E12000008", + "E07000229": "E12000008", + "E07000234": "E12000005", + "E07000235": "E12000005", + "E07000236": "E12000005", + "E07000237": "E12000005", + "E07000238": "E12000005", + "E07000239": "E12000005", + "E07000240": "E12000006", + "E07000241": "E12000006", + "E07000242": "E12000006", + "E07000243": "E12000006", + "E07000244": "E12000006", + "E07000245": "E12000006", + "E08000001": "E12000002", + "E08000002": "E12000002", + "E08000003": "E12000002", + "E08000004": "E12000002", + "E08000005": "E12000002", + "E08000006": "E12000002", + "E08000007": "E12000002", + "E08000008": "E12000002", + "E08000009": "E12000002", + "E08000010": "E12000002", + "E08000011": "E12000002", + "E08000012": "E12000002", + "E08000013": "E12000002", + "E08000014": "E12000002", + "E08000015": "E12000002", + "E08000016": "E12000003", + "E08000017": "E12000003", + "E08000018": "E12000003", + "E08000019": "E12000003", + "E08000021": "E12000001", + "E08000022": "E12000001", + "E08000023": "E12000001", + "E08000024": "E12000001", + "E08000025": "E12000005", + "E08000026": "E12000005", + "E08000027": "E12000005", + "E08000028": "E12000005", + "E08000029": "E12000005", + "E08000030": "E12000005", + "E08000031": "E12000005", + "E08000032": "E12000003", + "E08000033": "E12000003", + "E08000034": "E12000003", + "E08000035": "E12000003", + "E08000036": "E12000003", + "E08000037": "E12000001", + "E09000001": "E12000007", + "E09000002": "E12000007", + "E09000003": "E12000007", + "E09000004": "E12000007", + "E09000005": "E12000007", + "E09000006": "E12000007", + "E09000007": "E12000007", + "E09000008": "E12000007", + "E09000009": "E12000007", + "E09000010": "E12000007", + "E09000011": "E12000007", + "E09000012": "E12000007", + "E09000013": "E12000007", + "E09000014": "E12000007", + "E09000015": "E12000007", + "E09000016": "E12000007", + "E09000017": "E12000007", + "E09000018": "E12000007", + "E09000019": "E12000007", + "E09000020": "E12000007", + "E09000021": "E12000007", + "E09000022": "E12000007", + "E09000023": "E12000007", + "E09000024": "E12000007", + "E09000025": "E12000007", + "E09000026": "E12000007", + "E09000027": "E12000007", + "E09000028": "E12000007", + "E09000029": "E12000007", + "E09000030": "E12000007", + "E09000031": "E12000007", + "E09000032": "E12000007", + "E09000033": "E12000007", + "N09000001": "N92000002", + "N09000002": "N92000002", + "N09000003": "N92000002", + "N09000004": "N92000002", + "N09000005": "N92000002", + "N09000006": "N92000002", + "N09000007": "N92000002", + "N09000008": "N92000002", + "N09000009": "N92000002", + "N09000010": "N92000002", + "N09000011": "N92000002", + "S12000005": "S92000003", + "S12000006": "S92000003", + "S12000008": "S92000003", + "S12000010": "S92000003", + "S12000011": "S92000003", + "S12000013": "S92000003", + "S12000014": "S92000003", + "S12000017": "S92000003", + "S12000018": "S92000003", + "S12000019": "S92000003", + "S12000020": "S92000003", + "S12000021": "S92000003", + "S12000023": "S92000003", + "S12000026": "S92000003", + "S12000027": "S92000003", + "S12000028": "S92000003", + "S12000029": "S92000003", + "S12000030": "S92000003", + "S12000033": "S92000003", + "S12000034": "S92000003", + "S12000035": "S92000003", + "S12000036": "S92000003", + "S12000038": "S92000003", + "S12000039": "S92000003", + "S12000040": "S92000003", + "S12000041": "S92000003", + "S12000042": "S92000003", + "S12000045": "S92000003", + "S12000047": "S92000003", + "S12000048": "S92000003", + "S12000049": "S92000003", + "S12000050": "S92000003", + "W06000001": "W92000004", + "W06000002": "W92000004", + "W06000003": "W92000004", + "W06000004": "W92000004", + "W06000005": "W92000004", + "W06000006": "W92000004", + "W06000008": "W92000004", + "W06000009": "W92000004", + "W06000010": "W92000004", + "W06000011": "W92000004", + "W06000012": "W92000004", + "W06000013": "W92000004", + "W06000014": "W92000004", + "W06000015": "W92000004", + "W06000016": "W92000004", + "W06000018": "W92000004", + "W06000019": "W92000004", + "W06000020": "W92000004", + "W06000021": "W92000004", + "W06000022": "W92000004", + "W06000023": "W92000004", + "W06000024": "W92000004" + } } } } diff --git a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json index bb462b76a..17cc9a253 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-474a0ae1-consumer-facts", "target_period": 2025, - "candidate_count": 438, + "candidate_count": 609, "contract_target_count": 210, - "active_reference_count": 424, + "active_reference_count": 595, "status_counts": { - "active": 424, + "active": 595, "no_fact_at_or_before_period": 7, "signed_excluded": 7 }, @@ -363,40 +363,472 @@ "geography_id": "K02000001" }, "ons.population.age_0_9_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_10_19_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_20_29_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_30_39_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_40_49_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_50_59_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_60_69_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_70_79_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.age_80_89_by_region": { - "geography_level": "country", - "geography_id": "K02000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + }, + { + "geography_level": "country", + "geography_id": "W92000004" + }, + { + "geography_level": "country", + "geography_id": "S92000003" + }, + { + "geography_level": "country", + "geography_id": "N92000002" + } + ] }, "ons.population.female_0_4": { "geography_level": "country", @@ -603,72 +1035,396 @@ "geography_id": "K02000001" }, "voa.council_tax_stock.band_a": { - "geography_level": "country", - "geography_id": "E92000001" - }, - "scotgov.council_tax_stock.band_a": { - "geography_level": "country", - "geography_id": "S92000003" - }, - "voa.council_tax_stock.band_b": { - "geography_level": "country", - "geography_id": "E92000001" - }, - "scotgov.council_tax_stock.band_b": { - "geography_level": "country", + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] + }, + "scotgov.council_tax_stock.band_a": { + "geography_level": "country", "geography_id": "S92000003" }, - "voa.council_tax_stock.band_c": { + "voa.council_tax_stock.band_b": { + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] + }, + "scotgov.council_tax_stock.band_b": { "geography_level": "country", - "geography_id": "E92000001" + "geography_id": "S92000003" + }, + "voa.council_tax_stock.band_c": { + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] }, "scotgov.council_tax_stock.band_c": { "geography_level": "country", "geography_id": "S92000003" }, "voa.council_tax_stock.band_d": { - "geography_level": "country", - "geography_id": "E92000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] }, "scotgov.council_tax_stock.band_d": { "geography_level": "country", "geography_id": "S92000003" }, "voa.council_tax_stock.band_e": { - "geography_level": "country", - "geography_id": "E92000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] }, "scotgov.council_tax_stock.band_e": { "geography_level": "country", "geography_id": "S92000003" }, "voa.council_tax_stock.band_f": { - "geography_level": "country", - "geography_id": "E92000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] }, "scotgov.council_tax_stock.band_f": { "geography_level": "country", "geography_id": "S92000003" }, "voa.council_tax_stock.band_g": { - "geography_level": "country", - "geography_id": "E92000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] }, "scotgov.council_tax_stock.band_g": { "geography_level": "country", "geography_id": "S92000003" }, "voa.council_tax_stock.band_h": { - "geography_level": "country", - "geography_id": "E92000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] }, "scotgov.council_tax_stock.band_h": { "geography_level": "country", "geography_id": "S92000003" }, "voa.council_tax_stock.total": { - "geography_level": "country", - "geography_id": "E92000001" + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] }, "scotgov.council_tax_stock.total": { "geography_level": "country", @@ -856,15 +1612,114 @@ "dfi_ni.bus.passenger_receipts", "nithc.public_transport_support", "obr.esa", - "ons.population.age_0_9_by_region", - "ons.population.age_10_19_by_region", - "ons.population.age_20_29_by_region", - "ons.population.age_30_39_by_region", - "ons.population.age_40_49_by_region", - "ons.population.age_50_59_by_region", - "ons.population.age_60_69_by_region", - "ons.population.age_70_79_by_region", - "ons.population.age_80_89_by_region", + "ons.population.age_0_9_by_region@E12000001", + "ons.population.age_0_9_by_region@E12000002", + "ons.population.age_0_9_by_region@E12000003", + "ons.population.age_0_9_by_region@E12000004", + "ons.population.age_0_9_by_region@E12000005", + "ons.population.age_0_9_by_region@E12000006", + "ons.population.age_0_9_by_region@E12000007", + "ons.population.age_0_9_by_region@E12000008", + "ons.population.age_0_9_by_region@E12000009", + "ons.population.age_0_9_by_region@N92000002", + "ons.population.age_0_9_by_region@S92000003", + "ons.population.age_0_9_by_region@W92000004", + "ons.population.age_10_19_by_region@E12000001", + "ons.population.age_10_19_by_region@E12000002", + "ons.population.age_10_19_by_region@E12000003", + "ons.population.age_10_19_by_region@E12000004", + "ons.population.age_10_19_by_region@E12000005", + "ons.population.age_10_19_by_region@E12000006", + "ons.population.age_10_19_by_region@E12000007", + "ons.population.age_10_19_by_region@E12000008", + "ons.population.age_10_19_by_region@E12000009", + "ons.population.age_10_19_by_region@N92000002", + "ons.population.age_10_19_by_region@S92000003", + "ons.population.age_10_19_by_region@W92000004", + "ons.population.age_20_29_by_region@E12000001", + "ons.population.age_20_29_by_region@E12000002", + "ons.population.age_20_29_by_region@E12000003", + "ons.population.age_20_29_by_region@E12000004", + "ons.population.age_20_29_by_region@E12000005", + "ons.population.age_20_29_by_region@E12000006", + "ons.population.age_20_29_by_region@E12000007", + "ons.population.age_20_29_by_region@E12000008", + "ons.population.age_20_29_by_region@E12000009", + "ons.population.age_20_29_by_region@N92000002", + "ons.population.age_20_29_by_region@S92000003", + "ons.population.age_20_29_by_region@W92000004", + "ons.population.age_30_39_by_region@E12000001", + "ons.population.age_30_39_by_region@E12000002", + "ons.population.age_30_39_by_region@E12000003", + "ons.population.age_30_39_by_region@E12000004", + "ons.population.age_30_39_by_region@E12000005", + "ons.population.age_30_39_by_region@E12000006", + "ons.population.age_30_39_by_region@E12000007", + "ons.population.age_30_39_by_region@E12000008", + "ons.population.age_30_39_by_region@E12000009", + "ons.population.age_30_39_by_region@N92000002", + "ons.population.age_30_39_by_region@S92000003", + "ons.population.age_30_39_by_region@W92000004", + "ons.population.age_40_49_by_region@E12000001", + "ons.population.age_40_49_by_region@E12000002", + "ons.population.age_40_49_by_region@E12000003", + "ons.population.age_40_49_by_region@E12000004", + "ons.population.age_40_49_by_region@E12000005", + "ons.population.age_40_49_by_region@E12000006", + "ons.population.age_40_49_by_region@E12000007", + "ons.population.age_40_49_by_region@E12000008", + "ons.population.age_40_49_by_region@E12000009", + "ons.population.age_40_49_by_region@N92000002", + "ons.population.age_40_49_by_region@S92000003", + "ons.population.age_40_49_by_region@W92000004", + "ons.population.age_50_59_by_region@E12000001", + "ons.population.age_50_59_by_region@E12000002", + "ons.population.age_50_59_by_region@E12000003", + "ons.population.age_50_59_by_region@E12000004", + "ons.population.age_50_59_by_region@E12000005", + "ons.population.age_50_59_by_region@E12000006", + "ons.population.age_50_59_by_region@E12000007", + "ons.population.age_50_59_by_region@E12000008", + "ons.population.age_50_59_by_region@E12000009", + "ons.population.age_50_59_by_region@N92000002", + "ons.population.age_50_59_by_region@S92000003", + "ons.population.age_50_59_by_region@W92000004", + "ons.population.age_60_69_by_region@E12000001", + "ons.population.age_60_69_by_region@E12000002", + "ons.population.age_60_69_by_region@E12000003", + "ons.population.age_60_69_by_region@E12000004", + "ons.population.age_60_69_by_region@E12000005", + "ons.population.age_60_69_by_region@E12000006", + "ons.population.age_60_69_by_region@E12000007", + "ons.population.age_60_69_by_region@E12000008", + "ons.population.age_60_69_by_region@E12000009", + "ons.population.age_60_69_by_region@N92000002", + "ons.population.age_60_69_by_region@S92000003", + "ons.population.age_60_69_by_region@W92000004", + "ons.population.age_70_79_by_region@E12000001", + "ons.population.age_70_79_by_region@E12000002", + "ons.population.age_70_79_by_region@E12000003", + "ons.population.age_70_79_by_region@E12000004", + "ons.population.age_70_79_by_region@E12000005", + "ons.population.age_70_79_by_region@E12000006", + "ons.population.age_70_79_by_region@E12000007", + "ons.population.age_70_79_by_region@E12000008", + "ons.population.age_70_79_by_region@E12000009", + "ons.population.age_70_79_by_region@N92000002", + "ons.population.age_70_79_by_region@S92000003", + "ons.population.age_70_79_by_region@W92000004", + "ons.population.age_80_89_by_region@E12000001", + "ons.population.age_80_89_by_region@E12000002", + "ons.population.age_80_89_by_region@E12000003", + "ons.population.age_80_89_by_region@E12000004", + "ons.population.age_80_89_by_region@E12000005", + "ons.population.age_80_89_by_region@E12000006", + "ons.population.age_80_89_by_region@E12000007", + "ons.population.age_80_89_by_region@E12000008", + "ons.population.age_80_89_by_region@E12000009", + "ons.population.age_80_89_by_region@N92000002", + "ons.population.age_80_89_by_region@S92000003", + "ons.population.age_80_89_by_region@W92000004", "ons.population.female_0_4", "ons.population.female_10_14", "ons.population.female_15_19", @@ -2285,5137 +3140,7786 @@ "to": "2025" }, { - "name": "ons.population.age_0_9_by_region", + "name": "ons.population.age_0_9_by_region@E12000001", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_10_19_by_region", + "name": "ons.population.age_0_9_by_region@E12000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_20_29_by_region", + "name": "ons.population.age_0_9_by_region@E12000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_30_39_by_region", + "name": "ons.population.age_0_9_by_region@E12000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_40_49_by_region", + "name": "ons.population.age_0_9_by_region@E12000005", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_50_59_by_region", + "name": "ons.population.age_0_9_by_region@E12000006", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_60_69_by_region", + "name": "ons.population.age_0_9_by_region@E12000007", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_70_79_by_region", + "name": "ons.population.age_0_9_by_region@E12000008", "from": "2024", "to": "2025" }, { - "name": "ons.population.age_80_89_by_region", + "name": "ons.population.age_0_9_by_region@E12000009", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_0_4", + "name": "ons.population.age_0_9_by_region@W92000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_10_14", + "name": "ons.population.age_0_9_by_region@S92000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_15_19", + "name": "ons.population.age_0_9_by_region@N92000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_20_24", + "name": "ons.population.age_10_19_by_region@E12000001", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_25_29", + "name": "ons.population.age_10_19_by_region@E12000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_30_34", + "name": "ons.population.age_10_19_by_region@E12000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_35_39", + "name": "ons.population.age_10_19_by_region@E12000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_40_44", + "name": "ons.population.age_10_19_by_region@E12000005", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_45_49", + "name": "ons.population.age_10_19_by_region@E12000006", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_50_54", + "name": "ons.population.age_10_19_by_region@E12000007", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_55_59", + "name": "ons.population.age_10_19_by_region@E12000008", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_5_9", + "name": "ons.population.age_10_19_by_region@E12000009", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_60_64", + "name": "ons.population.age_10_19_by_region@W92000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_65_69", + "name": "ons.population.age_10_19_by_region@S92000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_70_74", + "name": "ons.population.age_10_19_by_region@N92000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_75_79", + "name": "ons.population.age_20_29_by_region@E12000001", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_80_84", + "name": "ons.population.age_20_29_by_region@E12000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_85_89", + "name": "ons.population.age_20_29_by_region@E12000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.female_90_plus", + "name": "ons.population.age_20_29_by_region@E12000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_0_4", + "name": "ons.population.age_20_29_by_region@E12000005", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_10_14", + "name": "ons.population.age_20_29_by_region@E12000006", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_15_19", + "name": "ons.population.age_20_29_by_region@E12000007", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_20_24", + "name": "ons.population.age_20_29_by_region@E12000008", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_25_29", + "name": "ons.population.age_20_29_by_region@E12000009", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_30_34", + "name": "ons.population.age_20_29_by_region@W92000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_35_39", + "name": "ons.population.age_20_29_by_region@S92000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_40_44", + "name": "ons.population.age_20_29_by_region@N92000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_45_49", + "name": "ons.population.age_30_39_by_region@E12000001", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_50_54", + "name": "ons.population.age_30_39_by_region@E12000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_55_59", + "name": "ons.population.age_30_39_by_region@E12000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_5_9", + "name": "ons.population.age_30_39_by_region@E12000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_60_64", + "name": "ons.population.age_30_39_by_region@E12000005", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_65_69", + "name": "ons.population.age_30_39_by_region@E12000006", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_70_74", + "name": "ons.population.age_30_39_by_region@E12000007", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_75_79", + "name": "ons.population.age_30_39_by_region@E12000008", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_80_84", + "name": "ons.population.age_30_39_by_region@E12000009", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_85_89", + "name": "ons.population.age_30_39_by_region@W92000004", "from": "2024", "to": "2025" }, { - "name": "ons.population.male_90_plus", + "name": "ons.population.age_30_39_by_region@S92000003", "from": "2024", "to": "2025" }, { - "name": "ons.population.scotland_children_under_16", + "name": "ons.population.age_30_39_by_region@N92000002", "from": "2024", "to": "2025" }, { - "name": "ons.population.scotland_babies_under_1", + "name": "ons.population.age_40_49_by_region@E12000001", "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_a", - "from": "2025-03", + "name": "ons.population.age_40_49_by_region@E12000002", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_a", - "from": "2025-09", + "name": "ons.population.age_40_49_by_region@E12000003", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_b", - "from": "2025-03", + "name": "ons.population.age_40_49_by_region@E12000004", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_b", - "from": "2025-09", + "name": "ons.population.age_40_49_by_region@E12000005", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_c", - "from": "2025-03", + "name": "ons.population.age_40_49_by_region@E12000006", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_c", - "from": "2025-09", + "name": "ons.population.age_40_49_by_region@E12000007", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_d", - "from": "2025-03", + "name": "ons.population.age_40_49_by_region@E12000008", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_d", - "from": "2025-09", + "name": "ons.population.age_40_49_by_region@E12000009", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_e", - "from": "2025-03", + "name": "ons.population.age_40_49_by_region@W92000004", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_e", - "from": "2025-09", + "name": "ons.population.age_40_49_by_region@S92000003", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_f", - "from": "2025-03", + "name": "ons.population.age_40_49_by_region@N92000002", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_f", - "from": "2025-09", + "name": "ons.population.age_50_59_by_region@E12000001", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_g", - "from": "2025-03", + "name": "ons.population.age_50_59_by_region@E12000002", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_g", - "from": "2025-09", + "name": "ons.population.age_50_59_by_region@E12000003", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.band_h", - "from": "2025-03", + "name": "ons.population.age_50_59_by_region@E12000004", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.band_h", - "from": "2025-09", + "name": "ons.population.age_50_59_by_region@E12000005", + "from": "2024", "to": "2025" }, { - "name": "voa.council_tax_stock.total", - "from": "2025-03", + "name": "ons.population.age_50_59_by_region@E12000006", + "from": "2024", "to": "2025" }, { - "name": "scotgov.council_tax_stock.total", - "from": "2025-09", + "name": "ons.population.age_50_59_by_region@E12000007", + "from": "2024", "to": "2025" }, { - "name": "ons.public_sector_employment", - "from": "2024-12", + "name": "ons.population.age_50_59_by_region@E12000008", + "from": "2024", "to": "2025" }, { - "name": "ons.land.land_value", + "name": "ons.population.age_50_59_by_region@E12000009", "from": "2024", "to": "2025" }, { - "name": "ons.land.household_land_value", + "name": "ons.population.age_50_59_by_region@W92000004", "from": "2024", "to": "2025" }, { - "name": "ons.land.corporate_land_value", + "name": "ons.population.age_50_59_by_region@S92000003", "from": "2024", "to": "2025" }, { - "name": "slc.repayments.england_total_higher_education", + "name": "ons.population.age_50_59_by_region@N92000002", "from": "2024", "to": "2025" }, { - "name": "slc.repayments.england_plan_1", + "name": "ons.population.age_60_69_by_region@E12000001", "from": "2024", "to": "2025" }, { - "name": "slc.repayments.england_plan_2", + "name": "ons.population.age_60_69_by_region@E12000002", "from": "2024", "to": "2025" }, { - "name": "slc.repayments.england_postgraduate", + "name": "ons.population.age_60_69_by_region@E12000003", "from": "2024", "to": "2025" }, { - "name": "slc.repayments.england_plan_5", + "name": "ons.population.age_60_69_by_region@E12000004", "from": "2024", "to": "2025" }, { - "name": "slc.support.maintenance_loan_recipients", + "name": "ons.population.age_60_69_by_region@E12000005", "from": "2024", "to": "2025" }, { - "name": "slc.support.maintenance_loan_spend", + "name": "ons.population.age_60_69_by_region@E12000006", "from": "2024", "to": "2025" }, { - "name": "slc.support.parents_learning_allowance_recipients", + "name": "ons.population.age_60_69_by_region@E12000007", "from": "2024", "to": "2025" }, { - "name": "slc.support.parents_learning_allowance_spend", + "name": "ons.population.age_60_69_by_region@E12000008", "from": "2024", "to": "2025" }, { - "name": "slc.support.adult_dependants_grant_recipients", + "name": "ons.population.age_60_69_by_region@E12000009", "from": "2024", "to": "2025" }, { - "name": "slc.support.adult_dependants_grant_spend", + "name": "ons.population.age_60_69_by_region@W92000004", "from": "2024", "to": "2025" }, { - "name": "dfe.funded_childcare.working_parent_children_2_to_4", - "from": "2025-01", + "name": "ons.population.age_60_69_by_region@S92000003", + "from": "2024", "to": "2025" }, { - "name": "dfe.funded_childcare.early_learning_2_year_olds", - "from": "2025-01", + "name": "ons.population.age_60_69_by_region@N92000002", + "from": "2024", "to": "2025" }, { - "name": "dfe.funded_childcare.universal_only_children", - "from": "2025-01", + "name": "ons.population.age_70_79_by_region@E12000001", + "from": "2024", "to": "2025" }, { - "name": "dft.bus_fare_receipts.england", + "name": "ons.population.age_70_79_by_region@E12000002", "from": "2024", - "to": "2025", - "index": "dft.local_bus_fares_index", - "factor": "1.05695792880259", - "value_before_uprating": "3417388656.43538" + "to": "2025" }, { - "name": "dft.bus_net_support.england", + "name": "ons.population.age_70_79_by_region@E12000003", "from": "2024", "to": "2025" }, { - "name": "dft.bus_fare_receipts.london", + "name": "ons.population.age_70_79_by_region@E12000004", "from": "2024", - "to": "2025", - "index": "dft.local_bus_fares_index", - "factor": "1", - "value_before_uprating": "1347434943.01459" + "to": "2025" }, { - "name": "dft.bus_net_support.london", + "name": "ons.population.age_70_79_by_region@E12000005", "from": "2024", "to": "2025" }, { - "name": "obr.fuel_duties_cars", + "name": "ons.population.age_70_79_by_region@E12000006", "from": "2024", "to": "2025" }, { - "name": "orr.rail_government_support", + "name": "ons.population.age_70_79_by_region@E12000007", "from": "2024", "to": "2025" }, { - "name": "scotgov.bus.passenger_revenue", + "name": "ons.population.age_70_79_by_region@E12000008", "from": "2024", "to": "2025" }, { - "name": "scotgov.bus.government_support", + "name": "ons.population.age_70_79_by_region@E12000009", "from": "2024", "to": "2025" }, { - "name": "welshgov.bus.public_support", + "name": "ons.population.age_70_79_by_region@W92000004", "from": "2024", "to": "2025" }, { - "name": "dfi_ni.bus.passenger_receipts", + "name": "ons.population.age_70_79_by_region@S92000003", "from": "2024", "to": "2025" }, { - "name": "nithc.public_transport_support", + "name": "ons.population.age_70_79_by_region@N92000002", "from": "2024", "to": "2025" - } - ], - "targets": { - "obr.income_tax": { - "status": "active", - "candidates": [ - { - "name": "obr.income_tax", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 331437583074.4429, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_d928e7da0fbfe088ca1a30d7" - } - ] }, - "obr.ni": { - "status": "active", - "candidates": [ - { - "name": "obr.ni", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 200081395082.7125, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_eccab3ee763d68bb782276a7" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000001", + "from": "2024", + "to": "2025" }, - "obr.ni_employee": { - "status": "active", - "candidates": [ - { - "name": "obr.ni_employee", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 49544363784.26465, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_7e3e3e637a9134760a0a530a" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000002", + "from": "2024", + "to": "2025" }, - "obr.ni_employer": { - "status": "active", - "candidates": [ - { - "name": "obr.ni_employer", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 145324007512.71753, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c8719021c501d9757e0e0814" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000003", + "from": "2024", + "to": "2025" }, - "obr.ni_self_employed": { - "status": "active", - "candidates": [ - { - "name": "obr.ni_self_employed", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 2902816090.4147716, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b94b7d74d7df7ff5f9309f3b" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000004", + "from": "2024", + "to": "2025" }, - "obr.vat": { - "status": "active", - "candidates": [ - { - "name": "obr.vat", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 180168938685.41794, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3c534c3e6313150f8081b777" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000005", + "from": "2024", + "to": "2025" }, - "obr.fuel_duties": { - "status": "signed_excluded", - "candidates": [ - { - "name": "obr.fuel_duties", - "status": "signed_excluded", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "signed_rationale": "The OBR fuel duties fact is all-road-users receipts (freight, vans, business mileage) against a household frame; obr.fuel_duties_cars binds the cars receipts from the OBR vehicle-type release instead (ruling 2026-09-10). The all-road-users row is retained in the contract for registry parity and signed out here rather than carried as a calibration measure exclusion." - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000006", + "from": "2024", + "to": "2025" }, - "hmrc.cgt.liability_total": { - "status": "active", - "candidates": [ - { - "name": "hmrc.cgt.liability_total", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 22503000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_222c397017de7bff0a6583a7" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000007", + "from": "2024", + "to": "2025" }, - "obr.sdlt": { - "status": "active", - "candidates": [ - { - "name": "obr.sdlt", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 15406516698.785578, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1b6d55fc4ccd78bd0ae457e9" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000008", + "from": "2024", + "to": "2025" }, - "obr.attendance_allowance": { - "status": "active", - "candidates": [ - { - "name": "obr.attendance_allowance", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 8492497075.074617, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4fe1b1966eeb22c0c5ca464c" - } - ] + { + "name": "ons.population.age_80_89_by_region@E12000009", + "from": "2024", + "to": "2025" }, - "obr.carers_allowance": { - "status": "active", - "candidates": [ - { - "name": "obr.carers_allowance", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 4569403813.760573, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_ca7be49d51152bcc4c6662f2" - } - ] + { + "name": "ons.population.age_80_89_by_region@W92000004", + "from": "2024", + "to": "2025" }, - "obr.child_benefit": { - "status": "active", + { + "name": "ons.population.age_80_89_by_region@S92000003", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.age_80_89_by_region@N92000002", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_0_4", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_10_14", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_15_19", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_20_24", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_25_29", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_30_34", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_35_39", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_40_44", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_45_49", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_50_54", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_55_59", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_5_9", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_60_64", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_65_69", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_70_74", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_75_79", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_80_84", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_85_89", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.female_90_plus", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_0_4", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_10_14", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_15_19", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_20_24", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_25_29", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_30_34", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_35_39", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_40_44", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_45_49", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_50_54", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_55_59", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_5_9", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_60_64", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_65_69", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_70_74", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_75_79", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_80_84", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_85_89", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.male_90_plus", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.scotland_children_under_16", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.population.scotland_babies_under_1", + "from": "2024", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_a@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_a", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_b@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_b", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_c@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_c", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_d@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_d", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_e@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_e", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_f@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_f", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_g@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_g", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.band_h@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.band_h", + "from": "2025-09", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000001", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000002", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000003", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000004", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000005", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000006", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000007", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000008", + "from": "2025-03", + "to": "2025" + }, + { + "name": "voa.council_tax_stock.total@E12000009", + "from": "2025-03", + "to": "2025" + }, + { + "name": "scotgov.council_tax_stock.total", + "from": "2025-09", + "to": "2025" + }, + { + "name": "ons.public_sector_employment", + "from": "2024-12", + "to": "2025" + }, + { + "name": "ons.land.land_value", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.land.household_land_value", + "from": "2024", + "to": "2025" + }, + { + "name": "ons.land.corporate_land_value", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.repayments.england_total_higher_education", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.repayments.england_plan_1", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.repayments.england_plan_2", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.repayments.england_postgraduate", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.repayments.england_plan_5", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.support.maintenance_loan_recipients", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.support.maintenance_loan_spend", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.support.parents_learning_allowance_recipients", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.support.parents_learning_allowance_spend", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.support.adult_dependants_grant_recipients", + "from": "2024", + "to": "2025" + }, + { + "name": "slc.support.adult_dependants_grant_spend", + "from": "2024", + "to": "2025" + }, + { + "name": "dfe.funded_childcare.working_parent_children_2_to_4", + "from": "2025-01", + "to": "2025" + }, + { + "name": "dfe.funded_childcare.early_learning_2_year_olds", + "from": "2025-01", + "to": "2025" + }, + { + "name": "dfe.funded_childcare.universal_only_children", + "from": "2025-01", + "to": "2025" + }, + { + "name": "dft.bus_fare_receipts.england", + "from": "2024", + "to": "2025", + "index": "dft.local_bus_fares_index", + "factor": "1.05695792880259", + "value_before_uprating": "3417388656.43538" + }, + { + "name": "dft.bus_net_support.england", + "from": "2024", + "to": "2025" + }, + { + "name": "dft.bus_fare_receipts.london", + "from": "2024", + "to": "2025", + "index": "dft.local_bus_fares_index", + "factor": "1", + "value_before_uprating": "1347434943.01459" + }, + { + "name": "dft.bus_net_support.london", + "from": "2024", + "to": "2025" + }, + { + "name": "obr.fuel_duties_cars", + "from": "2024", + "to": "2025" + }, + { + "name": "orr.rail_government_support", + "from": "2024", + "to": "2025" + }, + { + "name": "scotgov.bus.passenger_revenue", + "from": "2024", + "to": "2025" + }, + { + "name": "scotgov.bus.government_support", + "from": "2024", + "to": "2025" + }, + { + "name": "welshgov.bus.public_support", + "from": "2024", + "to": "2025" + }, + { + "name": "dfi_ni.bus.passenger_receipts", + "from": "2024", + "to": "2025" + }, + { + "name": "nithc.public_transport_support", + "from": "2024", + "to": "2025" + } + ], + "targets": { + "obr.income_tax": { + "status": "active", + "candidates": [ + { + "name": "obr.income_tax", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 331437583074.4429, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_d928e7da0fbfe088ca1a30d7" + } + ] + }, + "obr.ni": { + "status": "active", + "candidates": [ + { + "name": "obr.ni", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 200081395082.7125, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_eccab3ee763d68bb782276a7" + } + ] + }, + "obr.ni_employee": { + "status": "active", + "candidates": [ + { + "name": "obr.ni_employee", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 49544363784.26465, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_7e3e3e637a9134760a0a530a" + } + ] + }, + "obr.ni_employer": { + "status": "active", + "candidates": [ + { + "name": "obr.ni_employer", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 145324007512.71753, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c8719021c501d9757e0e0814" + } + ] + }, + "obr.ni_self_employed": { + "status": "active", + "candidates": [ + { + "name": "obr.ni_self_employed", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 2902816090.4147716, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b94b7d74d7df7ff5f9309f3b" + } + ] + }, + "obr.vat": { + "status": "active", + "candidates": [ + { + "name": "obr.vat", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 180168938685.41794, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c534c3e6313150f8081b777" + } + ] + }, + "obr.fuel_duties": { + "status": "signed_excluded", + "candidates": [ + { + "name": "obr.fuel_duties", + "status": "signed_excluded", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "signed_rationale": "The OBR fuel duties fact is all-road-users receipts (freight, vans, business mileage) against a household frame; obr.fuel_duties_cars binds the cars receipts from the OBR vehicle-type release instead (ruling 2026-09-10). The all-road-users row is retained in the contract for registry parity and signed out here rather than carried as a calibration measure exclusion." + } + ] + }, + "hmrc.cgt.liability_total": { + "status": "active", + "candidates": [ + { + "name": "hmrc.cgt.liability_total", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 22503000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_222c397017de7bff0a6583a7" + } + ] + }, + "obr.sdlt": { + "status": "active", + "candidates": [ + { + "name": "obr.sdlt", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 15406516698.785578, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1b6d55fc4ccd78bd0ae457e9" + } + ] + }, + "obr.attendance_allowance": { + "status": "active", + "candidates": [ + { + "name": "obr.attendance_allowance", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 8492497075.074617, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4fe1b1966eeb22c0c5ca464c" + } + ] + }, + "obr.carers_allowance": { + "status": "active", + "candidates": [ + { + "name": "obr.carers_allowance", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 4569403813.760573, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_ca7be49d51152bcc4c6662f2" + } + ] + }, + "obr.child_benefit": { + "status": "active", + "candidates": [ + { + "name": "obr.child_benefit", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 13389272724.45089, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_d3ab2c54ce0c4c6a46a7a36b" + } + ] + }, + "obr.council_tax": { + "status": "active", + "candidates": [ + { + "name": "obr.council_tax", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 50925163826.30539, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_16bcd3e2a16bfa44c0b1ea74" + } + ] + }, + "obr.council_tax_england": { + "status": "no_fact_at_or_before_period", + "candidates": [ + { + "name": "obr.council_tax_england", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + } + ] + }, + "obr.council_tax_scotland": { + "status": "no_fact_at_or_before_period", + "candidates": [ + { + "name": "obr.council_tax_scotland", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + } + ] + }, + "obr.council_tax_wales": { + "status": "no_fact_at_or_before_period", + "candidates": [ + { + "name": "obr.council_tax_wales", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + } + ] + }, + "obr.domestic_rates": { + "status": "no_fact_at_or_before_period", + "candidates": [ + { + "name": "obr.domestic_rates", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + } + ] + }, + "obr.esa": { + "status": "active", + "candidates": [ + { + "name": "obr.esa", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 7206287181.538654, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_632a67850494984d9b35e639" + } + ] + }, + "obr.housing_benefit": { + "status": "active", + "candidates": [ + { + "name": "obr.housing_benefit", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 12103254163.788864, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_984cc88cfc4242bd80c679f3" + } + ] + }, + "obr.jobseekers_allowance": { + "status": "active", + "candidates": [ + { + "name": "obr.jobseekers_allowance", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 280558748.04472804, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_d505f8a08a29411dcf69287b" + } + ] + }, + "obr.pension_credit": { + "status": "active", + "candidates": [ + { + "name": "obr.pension_credit", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 6146422389.476461, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_95ea9bc008361c26f90591d4" + } + ] + }, + "obr.pip": { + "status": "active", + "candidates": [ + { + "name": "obr.pip", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 36910059270.5278, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_548ebadeb7d774b32fa6f4ff" + } + ] + }, + "obr.state_pension": { + "status": "active", + "candidates": [ + { + "name": "obr.state_pension", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 146185954351.57382, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_567e55f9f73df2808c1c4be8" + } + ] + }, + "obr.statutory_maternity_pay": { + "status": "active", + "candidates": [ + { + "name": "obr.statutory_maternity_pay", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 3194800881.520547, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_0c45b526e2b233b22d955cc6" + } + ] + }, + "obr.tv_licence_fee": { + "status": "active", + "candidates": [ + { + "name": "obr.tv_licence_fee", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 3872000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b0f0afcd44c93532837c9f2a" + } + ] + }, + "obr.universal_credit_in_cap": { + "status": "active", + "candidates": [ + { + "name": "obr.universal_credit_in_cap", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 66410800011.47837, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e680fe36115d1372d12072e1" + } + ] + }, + "obr.universal_credit_outside_cap": { + "status": "active", + "candidates": [ + { + "name": "obr.universal_credit_outside_cap", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 12875549128.065746, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4c927d7b33d1eee2455bdbd0" + } + ] + }, + "obr.winter_fuel_allowance": { + "status": "active", + "candidates": [ + { + "name": "obr.winter_fuel_allowance", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 1911040880.4619167, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_575778670363b5890c8de847" + } + ] + }, + "isc.private_school_students": { + "status": "active", + "candidates": [ + { + "name": "isc.private_school_students", + "status": "active", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 556551.0, + "resolved_fact_period": "2024-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_67bd24e7f9158af756625865" + } + ] + }, + "hmrc.salary_sacrifice.it_relief_basic_rate": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.it_relief_basic_rate", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 1600000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_7320889e57785e6997224191" + } + ] + }, + "hmrc.salary_sacrifice.it_relief_higher_rate": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.it_relief_higher_rate", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 5500000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_7d9ff26814151157071301e9" + } + ] + }, + "hmrc.salary_sacrifice.it_relief_additional_rate": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.it_relief_additional_rate", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 1800000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_49a712ba4b22f0b4b2925ef9" + } + ] + }, + "hmrc.salary_sacrifice.nics_relief_employee": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.nics_relief_employee", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 1000000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_341767859ef6030c06c7a153" + } + ] + }, + "hmrc.salary_sacrifice.nics_relief_employer": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.nics_relief_employer", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3400000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_026ae1169f5f0f997bb06479" + } + ] + }, + "hmrc.salary_sacrifice.users_total": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.users_total", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 7700000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_06d585b8684b5fe0ce25f6ec" + } + ] + }, + "hmrc.salary_sacrifice.users_below_cap": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.users_below_cap", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4300000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_a48e584180a6f33d07112d3c" + } + ] + }, + "hmrc.salary_sacrifice.users_above_cap": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.users_above_cap", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3300000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_0331d77688891a3c3c3307b6" + } + ] + }, + "hmrc.spi.employment_income.amount_by_total_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc/employment_income_income_band_100_000_to_150_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 82300000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_b1c634a871c843888ab00545" + }, + { + "name": "hmrc/employment_income_income_band_1_000_000_to_inf", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 35500000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_16019afa59e224b690877826" + }, + { + "name": "hmrc/employment_income_income_band_12_570_to_15_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 16900000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_a82c84f67b40867564d2c847" + }, + { + "name": "hmrc/employment_income_income_band_15_000_to_20_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 48600000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_42eb325b6a29afb3e6d157fa" + }, + { + "name": "hmrc/employment_income_income_band_150_000_to_200_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 39200000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_1f93702eb88f381f0701c4f8" + }, + { + "name": "hmrc/employment_income_income_band_20_000_to_30_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 172000000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_794fd9633d6a2018fee633e7" + }, + { + "name": "hmrc/employment_income_income_band_200_000_to_300_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 36600000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_d85ad655daaa164b1ab33231" + }, + { + "name": "hmrc/employment_income_income_band_30_000_to_40_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 170000000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3607635c72d16b4059b6a3f6" + }, + { + "name": "hmrc/employment_income_income_band_300_000_to_500_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 29000000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_5c3674b48269ffe3c7b28a1b" + }, + { + "name": "hmrc/employment_income_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 139000000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_525aeb02ab9a831608756200" + }, + { + "name": "hmrc/employment_income_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 174000000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_9f1a70b4e0995af34d7dbbfb" + }, + { + "name": "hmrc/employment_income_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 23100000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_1944a2f33309b41b2d5f348d" + }, + { + "name": "hmrc/employment_income_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 118000000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_6178d003a4c1a6198294f174" + } + ] + }, + "hmrc.spi.employment_income.count_by_total_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc/employment_income_count_income_band_100_000_to_150_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 791000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_b83fec2e722ef22cbe28ee76" + }, + { + "name": "hmrc/employment_income_count_income_band_1_000_000_to_inf", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 21000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_618b4f84a2b10fdf0d901df6" + }, + { + "name": "hmrc/employment_income_count_income_band_12_570_to_15_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 1360000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_5a2e006ccd94f8754760661c" + }, + { + "name": "hmrc/employment_income_count_income_band_15_000_to_20_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3100000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_a4ecaa65aa113092a1c8fcf7" + }, + { + "name": "hmrc/employment_income_count_income_band_150_000_to_200_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 264000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffcb46afae1c469de75ee9b3" + }, + { + "name": "hmrc/employment_income_count_income_band_20_000_to_30_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 7470000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_1bbafa142b4bfc426ce5bdac" + }, + { + "name": "hmrc/employment_income_count_income_band_200_000_to_300_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 180000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_dd00b1e66c3254ddc0e108a6" + }, + { + "name": "hmrc/employment_income_count_income_band_30_000_to_40_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 5370000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3bd51396d03aee4164d7c1d6" + }, + { + "name": "hmrc/employment_income_count_income_band_300_000_to_500_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 93000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_d1f4ceb7f4e676d9ff044d80" + }, + { + "name": "hmrc/employment_income_count_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3500000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_874b13ae1da1064e73055c39" + }, + { + "name": "hmrc/employment_income_count_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3430000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_572104f32689df4a2dc4c334" + }, + { + "name": "hmrc/employment_income_count_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 44000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b99d6944753bf5696bdc8f9" + }, + { + "name": "hmrc/employment_income_count_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 1640000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_8eec35d25c57e9c2e2c7962b" + } + ] + }, + "hmrc.spi.self_employment_income.amount_by_total_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc/self_employment_income_income_band_100_000_to_150_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4980000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_5b616c7ebeb21ef5305b8beb" + }, + { + "name": "hmrc/self_employment_income_income_band_1_000_000_to_inf", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 19500000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_761827852b6a2fccb3d15132" + }, + { + "name": "hmrc/self_employment_income_income_band_12_570_to_15_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4810000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_1a69068db718770de7df525e" + }, + { + "name": "hmrc/self_employment_income_income_band_15_000_to_20_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 8030000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c1df7ca022a9c007f122de6d" + }, + { + "name": "hmrc/self_employment_income_income_band_150_000_to_200_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3650000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_7183b7c143f8e897552ad685" + }, + { + "name": "hmrc/self_employment_income_income_band_20_000_to_30_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 15700000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_33c4f0779c40ec91ff6761da" + }, + { + "name": "hmrc/self_employment_income_income_band_200_000_to_300_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4390000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_90652f32ebe0ff36c569998d" + }, + { + "name": "hmrc/self_employment_income_income_band_30_000_to_40_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 12600000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_1b9ad3f39e949b92a26ec28c" + }, + { + "name": "hmrc/self_employment_income_income_band_300_000_to_500_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4840000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_96f921ffdb56a575057076f8" + }, + { + "name": "hmrc/self_employment_income_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 8730000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_645090db5db62f7c47a34f60" + }, + { + "name": "hmrc/self_employment_income_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 8220000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0d7af3458463a645af3cb76" + }, + { + "name": "hmrc/self_employment_income_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 6670000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_fc7a985c6a2a3d69e2c9ae75" + }, + { + "name": "hmrc/self_employment_income_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 5360000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c588886840e4e7e4a141ac75" + } + ] + }, + "hmrc.spi.self_employment_income.count_by_total_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc/self_employment_income_count_income_band_100_000_to_150_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 85000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_db16ef55b3b0f60d292b745b" + }, + { + "name": "hmrc/self_employment_income_count_income_band_1_000_000_to_inf", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 11000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_315a063dab8497ed5b8837b6" + }, + { + "name": "hmrc/self_employment_income_count_income_band_12_570_to_15_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 444000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_498ad10a35b58ff55819bc8b" + }, + { + "name": "hmrc/self_employment_income_count_income_band_15_000_to_20_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 651000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb849a98f57c60bd507d621b" + }, + { + "name": "hmrc/self_employment_income_count_income_band_150_000_to_200_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 40000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_cfb6ca3c4eff6a83bd5c10ac" + }, + { + "name": "hmrc/self_employment_income_count_income_band_20_000_to_30_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 961000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_72bd71f362434b2260a4b407" + }, + { + "name": "hmrc/self_employment_income_count_income_band_200_000_to_300_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 34000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe86d957cb9590b3292e1757" + }, + { + "name": "hmrc/self_employment_income_count_income_band_30_000_to_40_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 595000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_84b75f0a77e11de0182b9d87" + }, + { + "name": "hmrc/self_employment_income_count_income_band_300_000_to_500_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 21000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_5c668fd92047d28d73d7c36d" + }, + { + "name": "hmrc/self_employment_income_count_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 359000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_876b5e55461ed15a7456d8b3" + }, + { + "name": "hmrc/self_employment_income_count_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 311000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_09e5a5c61ccf990f6104a903" + }, + { + "name": "hmrc/self_employment_income_count_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 15000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_73031eb82b28c872e4371fae" + }, + { + "name": "hmrc/self_employment_income_count_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 143000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c35c3f72e5f7901457970c8d" + } + ] + }, + "hmrc.spi.dividend_income.amount_by_total_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc/dividend_income_income_band_100_000_to_150_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 6870000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_6fd01f132dc6b218c02326b1" + }, + { + "name": "hmrc/dividend_income_income_band_1_000_000_to_inf", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 11100000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c0cd54a0f0609d8ebc58a25" + }, + { + "name": "hmrc/dividend_income_income_band_12_570_to_15_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 175000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_b63a84056f85bed14b8ab8fd" + }, + { + "name": "hmrc/dividend_income_income_band_15_000_to_20_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 855000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c4f22fc63944665033b18b3" + }, + { + "name": "hmrc/dividend_income_income_band_150_000_to_200_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3450000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_ced1a5840ced099b471d4e84" + }, + { + "name": "hmrc/dividend_income_income_band_20_000_to_30_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3330000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_8a115e840b38a6603d618bc0" + }, + { + "name": "hmrc/dividend_income_income_band_200_000_to_300_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3700000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0394e55216df7f3dcab84fb5" + }, + { + "name": "hmrc/dividend_income_income_band_30_000_to_40_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4700000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_ea93d59adaf66ef73e9dddbf" + }, + { + "name": "hmrc/dividend_income_income_band_300_000_to_500_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3430000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_8d09d2287cbdb2e4f4004521" + }, + { + "name": "hmrc/dividend_income_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 8400000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0a4329a3eb027a530c6f02ec" + }, + { + "name": "hmrc/dividend_income_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 12500000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c11497ffe45250b909593f1d" + }, + { + "name": "hmrc/dividend_income_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 3820000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_dafc8ca1cd03e5d461b11d4e" + }, + { + "name": "hmrc/dividend_income_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 9440000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_940e6ce9db10080ed5613faa" + } + ] + }, + "hmrc.spi.dividend_income.count_by_total_income_band": { + "status": "active", "candidates": [ { - "name": "obr.child_benefit", + "name": "hmrc/dividend_income_count_income_band_100_000_to_150_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 222000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_35b535ef60b7e9e8ddad45af" + }, + { + "name": "hmrc/dividend_income_count_income_band_1_000_000_to_inf", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 19000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_fbe097b0ffbcc0e7a301478d" + }, + { + "name": "hmrc/dividend_income_count_income_band_12_570_to_15_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 13389272724.45089, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_d3ab2c54ce0c4c6a46a7a36b" - } - ] - }, - "obr.council_tax": { - "status": "active", - "candidates": [ + "resolved_value": 115000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3a657db84b033007853ec14b" + }, { - "name": "obr.council_tax", + "name": "hmrc/dividend_income_count_income_band_15_000_to_20_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 50925163826.30539, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_16bcd3e2a16bfa44c0b1ea74" - } - ] - }, - "obr.council_tax_england": { - "status": "no_fact_at_or_before_period", - "candidates": [ + "resolved_value": 372000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_418541677821ff087753a7b4" + }, { - "name": "obr.council_tax_england", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + "name": "hmrc/dividend_income_count_income_band_150_000_to_200_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 92000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_426db10645b611899a770dbd" + }, + { + "name": "hmrc/dividend_income_count_income_band_20_000_to_30_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 843000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_937f405149e37c0c900a62ee" + }, + { + "name": "hmrc/dividend_income_count_income_band_200_000_to_300_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 75000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_6c0e32c82b968ba545457cab" + }, + { + "name": "hmrc/dividend_income_count_income_band_30_000_to_40_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 667000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c8fc2a8e3993c51b68cc6f8a" + }, + { + "name": "hmrc/dividend_income_count_income_band_300_000_to_500_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 49000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_439d9908bf6880e33103ea7d" + }, + { + "name": "hmrc/dividend_income_count_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 627000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_60bb54980a6ca69ff77d07f0" + }, + { + "name": "hmrc/dividend_income_count_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 643000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_56b8b1dd7aec08c3abddc3a0" + }, + { + "name": "hmrc/dividend_income_count_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 32000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c9f024b8595617fc8dd8e416" + }, + { + "name": "hmrc/dividend_income_count_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 336000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_2ed13533e012fdd1fec68a67" } ] }, - "obr.council_tax_scotland": { - "status": "no_fact_at_or_before_period", + "hmrc.spi.property_income.amount_by_total_income_band": { + "status": "signed_excluded", "candidates": [ { - "name": "obr.council_tax_scotland", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + "name": "hmrc.spi.property_income.amount_by_total_income_band", + "status": "signed_excluded", + "matched_fact_count_overall": 13, + "matched_fact_count_at_or_before_period": 13, + "signed_rationale": "Signed out pending a first-class value-scaling operation or a Chronicle package for HMRC Property Rental Income Statistics with declared reconciliation: the Ledger facts are official HMRC SPI Table 3.7 net property-income amounts, while the incumbent calibration target applies the populace-side x1.9 property-income undercount adjustment. The x1.9 trace is uk-data PR #311 / issue uk-data#230: SPI covers only taxpayers with liability, and HMRC Property Rental Income Statistics show GBP 46.68bn versus SPI about GBP 24.5bn for 2020-21. Binding the raw SPI facts would knowingly calibrate to 10/19 of the incumbent surface." } ] }, - "obr.council_tax_wales": { - "status": "no_fact_at_or_before_period", + "hmrc.spi.property_income.count_by_total_income_band": { + "status": "active", "candidates": [ { - "name": "obr.council_tax_wales", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" - } - ] - }, - "obr.domestic_rates": { - "status": "no_fact_at_or_before_period", - "candidates": [ + "name": "hmrc/property_income_count_income_band_100_000_to_150_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 137000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_50e02eb85969a4773af5cade" + }, + { + "name": "hmrc/property_income_count_income_band_1_000_000_to_inf", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 7000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_d286366fea43c9f897936709" + }, + { + "name": "hmrc/property_income_count_income_band_12_570_to_15_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 101000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_80d817cee2f3592809f3a194" + }, + { + "name": "hmrc/property_income_count_income_band_15_000_to_20_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 232000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_2c0d78b9f9dff4e5fdfa250c" + }, + { + "name": "hmrc/property_income_count_income_band_150_000_to_200_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 54000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_5ec672db73bb4f35958a409e" + }, + { + "name": "hmrc/property_income_count_income_band_20_000_to_30_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 431000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3eb40c70c3de0d0c29253566" + }, + { + "name": "hmrc/property_income_count_income_band_200_000_to_300_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 41000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0394669c5734865fda5f0541" + }, + { + "name": "hmrc/property_income_count_income_band_30_000_to_40_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 364000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_6564bb4b662365729676a9e1" + }, + { + "name": "hmrc/property_income_count_income_band_300_000_to_500_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 23000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_87c457b7ee2392ee8360893b" + }, + { + "name": "hmrc/property_income_count_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 325000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_7187a98d8342886b08e3f9e2" + }, + { + "name": "hmrc/property_income_count_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 397000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c44a33c3bc4454de20132027" + }, + { + "name": "hmrc/property_income_count_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 13000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_831e0c70ca80d37c785d4122" + }, { - "name": "obr.domestic_rates", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + "name": "hmrc/property_income_count_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 226000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_f93d04a399cee892e5ec86b6" } ] }, - "obr.esa": { + "hmrc.spi.private_pension_income.amount_by_total_income_band": { "status": "active", "candidates": [ { - "name": "obr.esa", + "name": "hmrc/private_pension_income_income_band_100_000_to_150_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 7206287181.538654, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_632a67850494984d9b35e639" - } - ] - }, - "obr.housing_benefit": { - "status": "active", - "candidates": [ + "resolved_value": 5430000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_cb943439ee9edfb445bc3fa5" + }, { - "name": "obr.housing_benefit", + "name": "hmrc/private_pension_income_income_band_1_000_000_to_inf", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 12103254163.788864, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_984cc88cfc4242bd80c679f3" - } - ] - }, - "obr.jobseekers_allowance": { - "status": "active", - "candidates": [ + "resolved_value": 370000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_7dcf8568040de10d9b3765da" + }, { - "name": "obr.jobseekers_allowance", + "name": "hmrc/private_pension_income_income_band_12_570_to_15_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 280558748.04472804, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_d505f8a08a29411dcf69287b" - } - ] - }, - "obr.pension_credit": { - "status": "active", - "candidates": [ + "resolved_value": 4350000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_699889c2fb48479e27e44a4a" + }, { - "name": "obr.pension_credit", + "name": "hmrc/private_pension_income_income_band_15_000_to_20_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 6146422389.476461, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_95ea9bc008361c26f90591d4" - } - ] - }, - "obr.pip": { - "status": "active", - "candidates": [ + "resolved_value": 13600000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0f977d0b50c1d0f1d1364e88" + }, { - "name": "obr.pip", + "name": "hmrc/private_pension_income_income_band_150_000_to_200_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 36910059270.5278, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_548ebadeb7d774b32fa6f4ff" - } - ] - }, - "obr.state_pension": { - "status": "active", - "candidates": [ + "resolved_value": 1810000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_d29aac0680380c80bd842bae" + }, { - "name": "obr.state_pension", + "name": "hmrc/private_pension_income_income_band_20_000_to_30_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 146185954351.57382, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_567e55f9f73df2808c1c4be8" - } - ] - }, - "obr.statutory_maternity_pay": { - "status": "active", - "candidates": [ + "resolved_value": 30200000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_bafcebe21a05cb0ca19d5e4f" + }, { - "name": "obr.statutory_maternity_pay", + "name": "hmrc/private_pension_income_income_band_200_000_to_300_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3194800881.520547, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_0c45b526e2b233b22d955cc6" - } - ] - }, - "obr.tv_licence_fee": { - "status": "active", - "candidates": [ + "resolved_value": 1570000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_de0ed091681463c4ddec5b85" + }, { - "name": "obr.tv_licence_fee", + "name": "hmrc/private_pension_income_income_band_30_000_to_40_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3872000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b0f0afcd44c93532837c9f2a" - } - ] - }, - "obr.universal_credit_in_cap": { - "status": "active", - "candidates": [ + "resolved_value": 24900000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_2884a006a8d7c144a8570a7d" + }, { - "name": "obr.universal_credit_in_cap", + "name": "hmrc/private_pension_income_income_band_300_000_to_500_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 66410800011.47837, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e680fe36115d1372d12072e1" - } - ] - }, - "obr.universal_credit_outside_cap": { - "status": "active", - "candidates": [ + "resolved_value": 1120000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_73e8de3b1ac198cc75c2b696" + }, { - "name": "obr.universal_credit_outside_cap", + "name": "hmrc/private_pension_income_income_band_40_000_to_50_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 12875549128.065746, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4c927d7b33d1eee2455bdbd0" - } - ] - }, - "obr.winter_fuel_allowance": { - "status": "active", - "candidates": [ + "resolved_value": 16900000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_6b29cd5a1d665a00bb3e8046" + }, { - "name": "obr.winter_fuel_allowance", + "name": "hmrc/private_pension_income_income_band_50_000_to_70_000", "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 17400000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_8f911d955de4f80e87dc69d8" + }, + { + "name": "hmrc/private_pension_income_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 640000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_a13e6165bec82537c5c2883c" + }, + { + "name": "hmrc/private_pension_income_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1911040880.4619167, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_575778670363b5890c8de847" + "resolved_value": 9470000000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0a1db235b87cad00eeddbfd8" } ] }, - "isc.private_school_students": { + "hmrc.spi.private_pension_income.count_by_total_income_band": { "status": "active", "candidates": [ { - "name": "isc.private_school_students", + "name": "hmrc/private_pension_income_count_income_band_100_000_to_150_000", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 556551.0, - "resolved_fact_period": "2024-01", - "resolved_fact_key": "ledger_aggregate_fact_v2_67bd24e7f9158af756625865" - } - ] - }, - "hmrc.salary_sacrifice.it_relief_basic_rate": { - "status": "active", - "candidates": [ + "resolved_value": 109000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_1fa1ba97628c6c2c315f0e15" + }, { - "name": "hmrc.salary_sacrifice.it_relief_basic_rate", + "name": "hmrc/private_pension_income_count_income_band_1_000_000_to_inf", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1600000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7320889e57785e6997224191" - } - ] - }, - "hmrc.salary_sacrifice.it_relief_higher_rate": { - "status": "active", - "candidates": [ + "resolved_value": 2000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_188f8f1a0535263e4db7c9a8" + }, { - "name": "hmrc.salary_sacrifice.it_relief_higher_rate", + "name": "hmrc/private_pension_income_count_income_band_12_570_to_15_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5500000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7d9ff26814151157071301e9" - } - ] - }, - "hmrc.salary_sacrifice.it_relief_additional_rate": { - "status": "active", - "candidates": [ + "resolved_value": 1070000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_853f104082cf479b98952c1a" + }, { - "name": "hmrc.salary_sacrifice.it_relief_additional_rate", + "name": "hmrc/private_pension_income_count_income_band_15_000_to_20_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1800000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_49a712ba4b22f0b4b2925ef9" - } - ] - }, - "hmrc.salary_sacrifice.nics_relief_employee": { - "status": "active", - "candidates": [ + "resolved_value": 2140000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c785199ee1d08fabfe927ff0" + }, { - "name": "hmrc.salary_sacrifice.nics_relief_employee", + "name": "hmrc/private_pension_income_count_income_band_150_000_to_200_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1000000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_341767859ef6030c06c7a153" - } - ] - }, - "hmrc.salary_sacrifice.nics_relief_employer": { - "status": "active", - "candidates": [ + "resolved_value": 29000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_a98ec830dee0eceb16b452e7" + }, { - "name": "hmrc.salary_sacrifice.nics_relief_employer", + "name": "hmrc/private_pension_income_count_income_band_20_000_to_30_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3400000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_026ae1169f5f0f997bb06479" - } - ] - }, - "hmrc.salary_sacrifice.users_total": { - "status": "active", - "candidates": [ + "resolved_value": 2660000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_1df6f17a33011c1c026dbc09" + }, { - "name": "hmrc.salary_sacrifice.users_total", + "name": "hmrc/private_pension_income_count_income_band_200_000_to_300_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 7700000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_06d585b8684b5fe0ce25f6ec" - } - ] - }, - "hmrc.salary_sacrifice.users_below_cap": { - "status": "active", - "candidates": [ + "resolved_value": 20000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_042ab8896eb0214e7bbad477" + }, { - "name": "hmrc.salary_sacrifice.users_below_cap", + "name": "hmrc/private_pension_income_count_income_band_30_000_to_40_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4300000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_a48e584180a6f33d07112d3c" - } - ] - }, - "hmrc.salary_sacrifice.users_above_cap": { - "status": "active", - "candidates": [ + "resolved_value": 1450000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0a28fd76533fc93cf8dbfe4a" + }, { - "name": "hmrc.salary_sacrifice.users_above_cap", + "name": "hmrc/private_pension_income_count_income_band_300_000_to_500_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3300000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_0331d77688891a3c3c3307b6" + "resolved_value": 10000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_7fccfc3ee4246841b3ed391b" + }, + { + "name": "hmrc/private_pension_income_count_income_band_40_000_to_50_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 779000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0f808aa135a13e5aa4668d22" + }, + { + "name": "hmrc/private_pension_income_count_income_band_50_000_to_70_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 643000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_097efdacf2adf0f90f90d1de" + }, + { + "name": "hmrc/private_pension_income_count_income_band_500_000_to_1_000_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_8abdd0aa368c3d693e6d0989" + }, + { + "name": "hmrc/private_pension_income_count_income_band_70_000_to_100_000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 259000.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_f75fc4c3e2cb06bbdb7543f8" } ] }, - "hmrc.spi.employment_income.amount_by_total_income_band": { + "hmrc.spi.state_pension.amount_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc/employment_income_income_band_100_000_to_150_000", + "name": "hmrc/state_pension_income_band_100_000_to_150_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 82300000000.0, + "resolved_value": 847000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b1c634a871c843888ab00545" + "resolved_fact_key": "ledger_aggregate_fact_v2_d63e1a96cab57582f482b8c2" }, { - "name": "hmrc/employment_income_income_band_1_000_000_to_inf", + "name": "hmrc/state_pension_income_band_1_000_000_to_inf", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 35500000000.0, + "resolved_value": 20000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_16019afa59e224b690877826" + "resolved_fact_key": "ledger_aggregate_fact_v2_9a20bd62d4d5984865242929" }, { - "name": "hmrc/employment_income_income_band_12_570_to_15_000", + "name": "hmrc/state_pension_income_band_12_570_to_15_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 16900000000.0, + "resolved_value": 11800000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a82c84f67b40867564d2c847" + "resolved_fact_key": "ledger_aggregate_fact_v2_45083c1383ea711226aebd1b" }, { - "name": "hmrc/employment_income_income_band_15_000_to_20_000", + "name": "hmrc/state_pension_income_band_15_000_to_20_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 48600000000.0, + "resolved_value": 22200000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_42eb325b6a29afb3e6d157fa" + "resolved_fact_key": "ledger_aggregate_fact_v2_310febb949c686fad2b71a94" }, { - "name": "hmrc/employment_income_income_band_150_000_to_200_000", + "name": "hmrc/state_pension_income_band_150_000_to_200_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 39200000000.0, + "resolved_value": 265000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1f93702eb88f381f0701c4f8" + "resolved_fact_key": "ledger_aggregate_fact_v2_e79668076aadc063559585e9" }, { - "name": "hmrc/employment_income_income_band_20_000_to_30_000", + "name": "hmrc/state_pension_income_band_20_000_to_30_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 172000000000.0, + "resolved_value": 24900000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_794fd9633d6a2018fee633e7" + "resolved_fact_key": "ledger_aggregate_fact_v2_3d18e138c32f6581d6dafdd7" }, { - "name": "hmrc/employment_income_income_band_200_000_to_300_000", + "name": "hmrc/state_pension_income_band_200_000_to_300_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 36600000000.0, + "resolved_value": 179000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d85ad655daaa164b1ab33231" + "resolved_fact_key": "ledger_aggregate_fact_v2_e1dda799099ac0f4f439700d" }, { - "name": "hmrc/employment_income_income_band_30_000_to_40_000", + "name": "hmrc/state_pension_income_band_30_000_to_40_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 170000000000.0, + "resolved_value": 12300000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3607635c72d16b4059b6a3f6" + "resolved_fact_key": "ledger_aggregate_fact_v2_151045b793ac454ab29260fc" }, { - "name": "hmrc/employment_income_income_band_300_000_to_500_000", + "name": "hmrc/state_pension_income_band_300_000_to_500_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 29000000000.0, + "resolved_value": 96000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5c3674b48269ffe3c7b28a1b" + "resolved_fact_key": "ledger_aggregate_fact_v2_c95154893499181b7f3a8903" }, { - "name": "hmrc/employment_income_income_band_40_000_to_50_000", + "name": "hmrc/state_pension_income_band_40_000_to_50_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 139000000000.0, + "resolved_value": 6020000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_525aeb02ab9a831608756200" + "resolved_fact_key": "ledger_aggregate_fact_v2_bc4cee7d39f5e1c311464a55" }, { - "name": "hmrc/employment_income_income_band_50_000_to_70_000", + "name": "hmrc/state_pension_income_band_50_000_to_70_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 174000000000.0, + "resolved_value": 4660000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_9f1a70b4e0995af34d7dbbfb" + "resolved_fact_key": "ledger_aggregate_fact_v2_7f09c940c0fbc3cc42b9e510" }, { - "name": "hmrc/employment_income_income_band_500_000_to_1_000_000", + "name": "hmrc/state_pension_income_band_500_000_to_1_000_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 23100000000.0, + "resolved_value": 43000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1944a2f33309b41b2d5f348d" + "resolved_fact_key": "ledger_aggregate_fact_v2_d265dfcd4ba09d10053a78a4" }, { - "name": "hmrc/employment_income_income_band_70_000_to_100_000", + "name": "hmrc/state_pension_income_band_70_000_to_100_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 118000000000.0, + "resolved_value": 1890000000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_6178d003a4c1a6198294f174" + "resolved_fact_key": "ledger_aggregate_fact_v2_41c1df25454fdf413d5765d7" } ] }, - "hmrc.spi.employment_income.count_by_total_income_band": { + "hmrc.spi.state_pension.count_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc/employment_income_count_income_band_100_000_to_150_000", + "name": "hmrc/state_pension_count_income_band_100_000_to_150_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 791000.0, + "resolved_value": 74000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b83fec2e722ef22cbe28ee76" + "resolved_fact_key": "ledger_aggregate_fact_v2_01b8f391c006c09d3ed51865" }, { - "name": "hmrc/employment_income_count_income_band_1_000_000_to_inf", + "name": "hmrc/state_pension_count_income_band_1_000_000_to_inf", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 21000.0, + "resolved_value": 2000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_618b4f84a2b10fdf0d901df6" + "resolved_fact_key": "ledger_aggregate_fact_v2_b8c359bb976d919bedb9076a" }, { - "name": "hmrc/employment_income_count_income_band_12_570_to_15_000", + "name": "hmrc/state_pension_count_income_band_12_570_to_15_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1360000.0, + "resolved_value": 1140000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5a2e006ccd94f8754760661c" + "resolved_fact_key": "ledger_aggregate_fact_v2_05f2cd00648c7f8225723a9c" }, { - "name": "hmrc/employment_income_count_income_band_15_000_to_20_000", + "name": "hmrc/state_pension_count_income_band_15_000_to_20_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3100000.0, + "resolved_value": 2050000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a4ecaa65aa113092a1c8fcf7" + "resolved_fact_key": "ledger_aggregate_fact_v2_ced75bd10fbfa56ef2eabeae" }, { - "name": "hmrc/employment_income_count_income_band_150_000_to_200_000", + "name": "hmrc/state_pension_count_income_band_150_000_to_200_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 264000.0, + "resolved_value": 21000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffcb46afae1c469de75ee9b3" + "resolved_fact_key": "ledger_aggregate_fact_v2_73d438db1a168d794e290b0e" }, { - "name": "hmrc/employment_income_count_income_band_20_000_to_30_000", + "name": "hmrc/state_pension_count_income_band_20_000_to_30_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 7470000.0, + "resolved_value": 2320000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1bbafa142b4bfc426ce5bdac" + "resolved_fact_key": "ledger_aggregate_fact_v2_69b521bf537da156d2afa48e" }, { - "name": "hmrc/employment_income_count_income_band_200_000_to_300_000", + "name": "hmrc/state_pension_count_income_band_200_000_to_300_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 180000.0, + "resolved_value": 14000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_dd00b1e66c3254ddc0e108a6" + "resolved_fact_key": "ledger_aggregate_fact_v2_3edcf70605856bb8b906ea19" }, { - "name": "hmrc/employment_income_count_income_band_30_000_to_40_000", + "name": "hmrc/state_pension_count_income_band_30_000_to_40_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5370000.0, + "resolved_value": 1160000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3bd51396d03aee4164d7c1d6" + "resolved_fact_key": "ledger_aggregate_fact_v2_1cafb0f484a7d8191b7fb989" }, { - "name": "hmrc/employment_income_count_income_band_300_000_to_500_000", + "name": "hmrc/state_pension_count_income_band_300_000_to_500_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 93000.0, + "resolved_value": 8000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d1f4ceb7f4e676d9ff044d80" + "resolved_fact_key": "ledger_aggregate_fact_v2_7f510c873457703c57c16983" }, { - "name": "hmrc/employment_income_count_income_band_40_000_to_50_000", + "name": "hmrc/state_pension_count_income_band_40_000_to_50_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3500000.0, + "resolved_value": 568000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_874b13ae1da1064e73055c39" + "resolved_fact_key": "ledger_aggregate_fact_v2_d4ff6839b2d936396ae33f67" }, { - "name": "hmrc/employment_income_count_income_band_50_000_to_70_000", + "name": "hmrc/state_pension_count_income_band_50_000_to_70_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3430000.0, + "resolved_value": 441000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_572104f32689df4a2dc4c334" + "resolved_fact_key": "ledger_aggregate_fact_v2_2b5023baae0b6814c07afbe9" }, { - "name": "hmrc/employment_income_count_income_band_500_000_to_1_000_000", + "name": "hmrc/state_pension_count_income_band_500_000_to_1_000_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 44000.0, + "resolved_value": 3000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3b99d6944753bf5696bdc8f9" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9a834c26fa7c215c052f4f5" }, { - "name": "hmrc/employment_income_count_income_band_70_000_to_100_000", + "name": "hmrc/state_pension_count_income_band_70_000_to_100_000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1640000.0, + "resolved_value": 176000.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8eec35d25c57e9c2e2c7962b" + "resolved_fact_key": "ledger_aggregate_fact_v2_7514fbdbf5f909008b617d06" } ] }, - "hmrc.spi.self_employment_income.amount_by_total_income_band": { + "hmrc.cgt.taxpayers_total": { "status": "active", "candidates": [ { - "name": "hmrc/self_employment_income_income_band_100_000_to_150_000", + "name": "hmrc.cgt.taxpayers_total", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4980000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5b616c7ebeb21ef5305b8beb" - }, + "resolved_value": 551000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_31d709fc393c2bf4d04efca5" + } + ] + }, + "hmrc.cgt.gains_total": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_1_000_000_to_inf", + "name": "hmrc.cgt.gains_total", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 19500000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_761827852b6a2fccb3d15132" - }, + "resolved_value": 119258000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_12060d20a417d85d67cf24e8" + } + ] + }, + "dwp.benefit_cap.capped_households": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_12_570_to_15_000", + "name": "dwp.benefit_cap.capped_households", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4810000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1a69068db718770de7df525e" - }, + "resolved_value": 110637.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_b698397897ed849f096cdd94" + } + ] + }, + "dwp.pip.daily_living_standard_claimants": { + "status": "no_fact_at_or_before_period", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_15_000_to_20_000", + "name": "dwp.pip.daily_living_standard_claimants", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + } + ] + }, + "dwp.pip.daily_living_enhanced_claimants": { + "status": "no_fact_at_or_before_period", + "candidates": [ + { + "name": "dwp.pip.daily_living_enhanced_claimants", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + } + ] + }, + "dwp.esa_claimants": { + "status": "active", + "candidates": [ + { + "name": "dwp.esa_claimants", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 8030000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c1df7ca022a9c007f122de6d" - }, + "resolved_value": 1000000.0, + "resolved_fact_period": "2025-08", + "resolved_fact_key": "ledger_aggregate_fact_v2_16ef67af9274891abd5e4fdc" + } + ] + }, + "dwp.esa_contrib_claimants": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_150_000_to_200_000", + "name": "dwp.esa_contrib_claimants", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3650000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7183b7c143f8e897552ad685" - }, + "resolved_value": 620000.0, + "resolved_fact_period": "2025-08", + "resolved_fact_key": "ledger_aggregate_fact_v2_bf22883b03cf631864b2ae1d" + } + ] + }, + "dwp.esa_income_claimants": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_20_000_to_30_000", + "name": "dwp.esa_income_claimants", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 15700000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_33c4f0779c40ec91ff6761da" - }, + "resolved_value": 180000.0, + "resolved_fact_period": "2025-08", + "resolved_fact_key": "ledger_aggregate_fact_v2_8684f0c35a1d71a291e61c81" + } + ] + }, + "dwp.jsa_claimants": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_200_000_to_300_000", + "name": "dwp.jsa_claimants", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4390000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_90652f32ebe0ff36c569998d" - }, + "resolved_value": 71000.0, + "resolved_fact_period": "2025-08", + "resolved_fact_key": "ledger_aggregate_fact_v2_b5d92ff094ad2c534847291a" + } + ] + }, + "dwp.uc.households_children_1": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_30_000_to_40_000", + "name": "dwp.uc.households_children_1", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 12600000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1b9ad3f39e949b92a26ec28c" - }, + "resolved_value": 1190123.8333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c1533879baf52aaa88758083" + } + ] + }, + "dwp.uc.households_children_2": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.households_children_2", + "status": "active", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, + "resolved_period": 2025, + "resolved_value": 1049895.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_46fca4f9d4e0519f0c190824" + } + ] + }, + "dwp.uc.households_children_3": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.households_children_3", + "status": "active", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, + "resolved_period": 2025, + "resolved_value": 477887.6666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ba5bce203605d4e16037d311" + } + ] + }, + "dwp.uc.households_children_4": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_300_000_to_500_000", + "name": "dwp.uc.households_children_4", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 4840000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_96f921ffdb56a575057076f8" - }, + "resolved_value": 170713.66666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_33541aafa05a63dcae4fc144" + } + ] + }, + "dwp.uc.households_children_5_or_more": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_40_000_to_50_000", + "name": "dwp.uc.households_children_5_or_more", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 8730000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_645090db5db62f7c47a34f60" - }, + "resolved_value": 76320.08333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_33d99593d166153ca2d0adec" + } + ] + }, + "dwp.uc.households_single_no_children": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_50_000_to_70_000", + "name": "dwp.uc.households_single_no_children", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 24, + "matched_fact_count_at_or_before_period": 24, + "matched_fact_count_in_source_window": 24, "resolved_period": 2025, - "resolved_value": 8220000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0d7af3458463a645af3cb76" - }, + "resolved_value": 2990070.1666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c013630f1154eb7252466457" + } + ] + }, + "dwp.uc.households_single_with_children": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_500_000_to_1_000_000", + "name": "dwp.uc.households_single_with_children", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 24, + "matched_fact_count_at_or_before_period": 24, + "matched_fact_count_in_source_window": 24, "resolved_period": 2025, - "resolved_value": 6670000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc7a985c6a2a3d69e2c9ae75" - }, + "resolved_value": 2138780.1666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4e21ff5e364647d7c75589d2" + } + ] + }, + "dwp.uc.households_couple_no_children": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_income_band_70_000_to_100_000", + "name": "dwp.uc.households_couple_no_children", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 24, + "matched_fact_count_at_or_before_period": 24, + "matched_fact_count_in_source_window": 24, "resolved_period": 2025, - "resolved_value": 5360000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c588886840e4e7e4a141ac75" + "resolved_value": 241130.91666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad46a5483afd6bad20dc50fe" } ] }, - "hmrc.spi.self_employment_income.count_by_total_income_band": { + "dwp.uc.households_couple_with_children": { "status": "active", "candidates": [ { - "name": "hmrc/self_employment_income_count_income_band_100_000_to_150_000", + "name": "dwp.uc.households_couple_with_children", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 24, + "matched_fact_count_at_or_before_period": 24, + "matched_fact_count_in_source_window": 24, "resolved_period": 2025, - "resolved_value": 85000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_db16ef55b3b0f60d292b745b" - }, + "resolved_value": 826160.8333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1a76243d3f616b19eaed3e0a" + } + ] + }, + "dwp.uc.payment_distribution_single": { + "status": "active", + "candidates": [ { - "name": "hmrc/self_employment_income_count_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_0_to_1_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 11000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_315a063dab8497ed5b8837b6" + "resolved_value": 89479.33333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2ab0a2ad4fff5a73eb430af0" }, { - "name": "hmrc/self_employment_income_count_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_1_200_to_2_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 444000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_498ad10a35b58ff55819bc8b" + "resolved_value": 127403.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4da96f3f87204e3b63a7197e" }, { - "name": "hmrc/self_employment_income_count_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_12_000_to_13_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 651000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb849a98f57c60bd507d621b" + "resolved_value": 122035.55555555556, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_100f173ee4233f5ed3616bbc" }, { - "name": "hmrc/self_employment_income_count_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_13_200_to_14_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 40000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_cfb6ca3c4eff6a83bd5c10ac" + "resolved_value": 197163.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_263205affbfb94c0a87b7834" }, { - "name": "hmrc/self_employment_income_count_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_14_400_to_15_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 961000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_72bd71f362434b2260a4b407" + "resolved_value": 209497.33333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f4e51bd6399c4a72f10e625f" }, { - "name": "hmrc/self_employment_income_count_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_15_600_to_16_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 34000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe86d957cb9590b3292e1757" + "resolved_value": 149963.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_746aa1e8d116c4543251b137" }, { - "name": "hmrc/self_employment_income_count_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_16_800_to_18_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 595000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_84b75f0a77e11de0182b9d87" + "resolved_value": 108689.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0dc82a9ba1ce7a8ea1855991" }, { - "name": "hmrc/self_employment_income_count_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_18_000_to_19_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 21000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5c668fd92047d28d73d7c36d" + "resolved_value": 61718.666666666664, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4399ab26a944d2d46a12311d" }, { - "name": "hmrc/self_employment_income_count_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_19_200_to_20_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 359000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_876b5e55461ed15a7456d8b3" + "resolved_value": 34050.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b8ab0a63fbef46e02aa34d37" }, { - "name": "hmrc/self_employment_income_count_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_20_400_to_21_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 311000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_09e5a5c61ccf990f6104a903" + "resolved_value": 22338.333333333332, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d22d996cd3edb838030ab0dc" }, { - "name": "hmrc/self_employment_income_count_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_21_600_to_22_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 15000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_73031eb82b28c872e4371fae" + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, + "resolved_period": 2025, + "resolved_value": 14685.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_404ce9f1ea3e17ec602a1de9" }, { - "name": "hmrc/self_employment_income_count_income_band_70_000_to_100_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_22_800_to_24_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 143000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c35c3f72e5f7901457970c8d" - } - ] - }, - "hmrc.spi.dividend_income.amount_by_total_income_band": { - "status": "active", - "candidates": [ + "resolved_value": 11133.666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d2268373d3e5894e10f3f004" + }, { - "name": "hmrc/dividend_income_income_band_100_000_to_150_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_2_400_to_3_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 6870000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_6fd01f132dc6b218c02326b1" + "resolved_value": 197136.66666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_37e9e071fb187dab220f3876" }, { - "name": "hmrc/dividend_income_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_24_000_to_25_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 11100000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3c0cd54a0f0609d8ebc58a25" + "resolved_value": 6951.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8af773c191130cd03d9de884" }, { - "name": "hmrc/dividend_income_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_25_200_to_26_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 175000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b63a84056f85bed14b8ab8fd" + "resolved_value": 6508.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f46b09c321cf98f8e0d12b89" }, { - "name": "hmrc/dividend_income_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_26_400_to_27_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 855000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3c4f22fc63944665033b18b3" + "resolved_value": 5913.444444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a763ca2d87febd61de26d8b0" }, { - "name": "hmrc/dividend_income_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_27_600_to_28_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 3450000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ced1a5840ced099b471d4e84" + "resolved_value": 1884.111111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8b6d8894debcbda5e38c0923" }, { - "name": "hmrc/dividend_income_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_28_800_to_30_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 3330000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8a115e840b38a6603d618bc0" + "resolved_value": 1653.7777777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_aa3077a36f37ae73562e57fc" }, { - "name": "hmrc/dividend_income_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_3_600_to_4_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 3700000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0394e55216df7f3dcab84fb5" + "resolved_value": 377063.1111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_988e854b9584a36b1b62810f" }, { - "name": "hmrc/dividend_income_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_4_800_to_6_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 4700000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ea93d59adaf66ef73e9dddbf" + "resolved_value": 195983.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7a3e7c9563c15ba28ffd3c3e" }, { - "name": "hmrc/dividend_income_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_6_000_to_7_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 3430000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8d09d2287cbdb2e4f4004521" + "resolved_value": 114033.33333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_294fdb23cc02a98334267137" }, { - "name": "hmrc/dividend_income_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_7_200_to_8_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 8400000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0a4329a3eb027a530c6f02ec" + "resolved_value": 149043.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d4a92d292c96a2f440dee5a" }, { - "name": "hmrc/dividend_income_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_8_400_to_9_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 12500000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c11497ffe45250b909593f1d" + "resolved_value": 399750.22222222225, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad92f85c0ac85ea7bb6e8ca3" }, { - "name": "hmrc/dividend_income_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_9_600_to_10_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 3820000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_dafc8ca1cd03e5d461b11d4e" + "resolved_value": 386411.6666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e2bbf1fe386cfcd8db712026" }, { - "name": "hmrc/dividend_income_income_band_70_000_to_100_000", + "name": "dwp/uc_payment_dist/SINGLE_annual_payment_10_800_to_12_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 9440000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_940e6ce9db10080ed5613faa" + "resolved_value": 104891.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_de2719af6e4d5f9ffe65aaee" } ] }, - "hmrc.spi.dividend_income.count_by_total_income_band": { + "dwp.uc.payment_distribution_lone_parent": { "status": "active", "candidates": [ { - "name": "hmrc/dividend_income_count_income_band_100_000_to_150_000", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 222000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_35b535ef60b7e9e8ddad45af" - }, - { - "name": "hmrc/dividend_income_count_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_0_to_1_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 19000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_fbe097b0ffbcc0e7a301478d" + "resolved_value": 26670.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7b17c88cf49645b2d3ef44a6" }, { - "name": "hmrc/dividend_income_count_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_1_200_to_2_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 115000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3a657db84b033007853ec14b" + "resolved_value": 36208.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_765ace417ceafd524ffda4c0" }, { - "name": "hmrc/dividend_income_count_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_12_000_to_13_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 372000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_418541677821ff087753a7b4" + "resolved_value": 125798.44444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_eaddee052a3861f259b93272" }, { - "name": "hmrc/dividend_income_count_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_13_200_to_14_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 92000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_426db10645b611899a770dbd" + "resolved_value": 129133.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b8d66013c8a68e423f507be8" }, { - "name": "hmrc/dividend_income_count_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_14_400_to_15_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 843000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_937f405149e37c0c900a62ee" + "resolved_value": 115856.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1bc84efe74c485d143caab7b" }, { - "name": "hmrc/dividend_income_count_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_15_600_to_16_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 75000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_6c0e32c82b968ba545457cab" + "resolved_value": 125660.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e26d2d7e425a94fd9fde3d17" }, { - "name": "hmrc/dividend_income_count_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_16_800_to_18_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 667000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c8fc2a8e3993c51b68cc6f8a" + "resolved_value": 135836.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8fa2e062c33297530d458054" }, { - "name": "hmrc/dividend_income_count_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_18_000_to_19_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 49000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_439d9908bf6880e33103ea7d" + "resolved_value": 135444.88888888888, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_77cb72042ffb9b2b1af769e3" }, { - "name": "hmrc/dividend_income_count_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_19_200_to_20_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 627000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_60bb54980a6ca69ff77d07f0" + "resolved_value": 106341.88888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_acb89a96425fd7af119e0c3b" }, { - "name": "hmrc/dividend_income_count_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_20_400_to_21_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 643000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_56b8b1dd7aec08c3abddc3a0" + "resolved_value": 85490.44444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3aa5825f5e5e8dbc570c0af1" }, { - "name": "hmrc/dividend_income_count_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_21_600_to_22_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 32000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c9f024b8595617fc8dd8e416" + "resolved_value": 80226.88888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c5a0ee450c3ad7f882dfb167" }, { - "name": "hmrc/dividend_income_count_income_band_70_000_to_100_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_22_800_to_24_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 336000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_2ed13533e012fdd1fec68a67" - } - ] - }, - "hmrc.spi.property_income.amount_by_total_income_band": { - "status": "signed_excluded", - "candidates": [ - { - "name": "hmrc.spi.property_income.amount_by_total_income_band", - "status": "signed_excluded", - "matched_fact_count_overall": 13, - "matched_fact_count_at_or_before_period": 13, - "signed_rationale": "Signed out pending a first-class value-scaling operation or a Chronicle package for HMRC Property Rental Income Statistics with declared reconciliation: the Ledger facts are official HMRC SPI Table 3.7 net property-income amounts, while the incumbent calibration target applies the populace-side x1.9 property-income undercount adjustment. The x1.9 trace is uk-data PR #311 / issue uk-data#230: SPI covers only taxpayers with liability, and HMRC Property Rental Income Statistics show GBP 46.68bn versus SPI about GBP 24.5bn for 2020-21. Binding the raw SPI facts would knowingly calibrate to 10/19 of the incumbent surface." - } - ] - }, - "hmrc.spi.property_income.count_by_total_income_band": { - "status": "active", - "candidates": [ + "resolved_value": 71259.55555555556, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_13ffca0d11c038fc7d096ec9" + }, { - "name": "hmrc/property_income_count_income_band_100_000_to_150_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_2_400_to_3_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 137000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_50e02eb85969a4773af5cade" + "resolved_value": 46312.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6619e26753d01d76247e1759" }, { - "name": "hmrc/property_income_count_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_24_000_to_25_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 7000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d286366fea43c9f897936709" + "resolved_value": 51301.666666666664, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4a935006e5c346bfe0009055" }, { - "name": "hmrc/property_income_count_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_25_200_to_26_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 101000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_80d817cee2f3592809f3a194" + "resolved_value": 43305.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e64560bd9c14d083cd03c985" }, { - "name": "hmrc/property_income_count_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_26_400_to_27_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 232000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_2c0d78b9f9dff4e5fdfa250c" + "resolved_value": 34910.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8e16d0c97924701eb074c25d" }, { - "name": "hmrc/property_income_count_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_27_600_to_28_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 54000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5ec672db73bb4f35958a409e" + "resolved_value": 28513.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_cf9757018b0d313f20342b59" }, { - "name": "hmrc/property_income_count_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_28_800_to_30_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 431000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3eb40c70c3de0d0c29253566" + "resolved_value": 22593.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6bede883f015e48e86c0a2de" }, { - "name": "hmrc/property_income_count_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_3_600_to_4_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 41000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0394669c5734865fda5f0541" + "resolved_value": 60310.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b0710535c8b6006db118eb3b" }, { - "name": "hmrc/property_income_count_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_4_800_to_6_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 364000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_6564bb4b662365729676a9e1" + "resolved_value": 67858.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b4008c8b22190b4ee185d4f6" }, { - "name": "hmrc/property_income_count_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_6_000_to_7_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 23000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_87c457b7ee2392ee8360893b" + "resolved_value": 89577.44444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1d1fadffae053bf60d7fcd7e" }, { - "name": "hmrc/property_income_count_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_7_200_to_8_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 325000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7187a98d8342886b08e3f9e2" + "resolved_value": 116076.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fae65610a14d6c22f475d757" }, { - "name": "hmrc/property_income_count_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_8_400_to_9_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 397000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c44a33c3bc4454de20132027" + "resolved_value": 97511.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_540c0869e23edc4a402166bf" }, { - "name": "hmrc/property_income_count_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_9_600_to_10_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 13000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_831e0c70ca80d37c785d4122" + "resolved_value": 102343.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a170bf444a17ae88a80766b0" }, { - "name": "hmrc/property_income_count_income_band_70_000_to_100_000", + "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_10_800_to_12_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 226000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_f93d04a399cee892e5ec86b6" + "resolved_value": 123718.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b7d0d6add859217e797a66ea" } ] }, - "hmrc.spi.private_pension_income.amount_by_total_income_band": { + "dwp.uc.payment_distribution_couple_no_children": { "status": "active", "candidates": [ { - "name": "hmrc/private_pension_income_income_band_100_000_to_150_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_0_to_1_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 5430000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_cb943439ee9edfb445bc3fa5" + "resolved_value": 7506.333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e8af6f4ef9d70ded4a4bf6b5" }, { - "name": "hmrc/private_pension_income_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_1_200_to_2_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 370000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7dcf8568040de10d9b3765da" + "resolved_value": 8797.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_28514ff922f7b00a4706e74b" }, { - "name": "hmrc/private_pension_income_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_12_000_to_13_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 4350000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_699889c2fb48479e27e44a4a" + "resolved_value": 16121.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8b8e20276b7af9f670009f64" }, { - "name": "hmrc/private_pension_income_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_13_200_to_14_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 13600000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0f977d0b50c1d0f1d1364e88" + "resolved_value": 13317.333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_22e83b92481a8b2267a15309" }, { - "name": "hmrc/private_pension_income_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_14_400_to_15_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1810000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d29aac0680380c80bd842bae" + "resolved_value": 19657.333333333332, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_42f1cbfe9fee5eb33f69088d" }, { - "name": "hmrc/private_pension_income_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_15_600_to_16_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 30200000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_bafcebe21a05cb0ca19d5e4f" + "resolved_value": 16443.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_aed9bf66bdbc046ee991fcf5" }, { - "name": "hmrc/private_pension_income_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_16_800_to_18_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1570000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_de0ed091681463c4ddec5b85" + "resolved_value": 13441.111111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7ccb1420b8ca3e26048291b9" }, { - "name": "hmrc/private_pension_income_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_18_000_to_19_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 24900000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_2884a006a8d7c144a8570a7d" + "resolved_value": 10728.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a7057ddde3cd2ffaed246687" }, { - "name": "hmrc/private_pension_income_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_19_200_to_20_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1120000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_73e8de3b1ac198cc75c2b696" + "resolved_value": 9653.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3e228ab480713f15af6e847c" }, { - "name": "hmrc/private_pension_income_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_20_400_to_21_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 16900000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_6b29cd5a1d665a00bb3e8046" + "resolved_value": 6486.888888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ecfd0dfe25ebc098ade1e902" }, { - "name": "hmrc/private_pension_income_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_21_600_to_22_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 17400000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8f911d955de4f80e87dc69d8" + "resolved_value": 3981.8888888888887, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2bbf9ab64d9fde9025452375" }, { - "name": "hmrc/private_pension_income_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_22_800_to_24_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 640000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a13e6165bec82537c5c2883c" + "resolved_value": 2761.4444444444443, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f19a927835e2aa12a94f6279" }, { - "name": "hmrc/private_pension_income_income_band_70_000_to_100_000", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 9470000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0a1db235b87cad00eeddbfd8" - } - ] - }, - "hmrc.spi.private_pension_income.count_by_total_income_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc/private_pension_income_count_income_band_100_000_to_150_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 109000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1fa1ba97628c6c2c315f0e15" + "resolved_value": 12256.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_46ba331006269a96f7aee844" }, { - "name": "hmrc/private_pension_income_count_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_24_000_to_25_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 2000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_188f8f1a0535263e4db7c9a8" + "resolved_value": 2131.222222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dd2ddbef54fc0ec48f61d7b0" }, { - "name": "hmrc/private_pension_income_count_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_25_200_to_26_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1070000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_853f104082cf479b98952c1a" + "resolved_value": 1475.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3ea2b4312343be8d41a37265" }, { - "name": "hmrc/private_pension_income_count_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_26_400_to_27_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 2140000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c785199ee1d08fabfe927ff0" + "resolved_value": 1073.7777777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_55cf1a8742443b096e81b33e" }, { - "name": "hmrc/private_pension_income_count_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_27_600_to_28_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 29000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a98ec830dee0eceb16b452e7" + "resolved_value": 746.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6cd7a2f97a5e43ba25481719" }, { - "name": "hmrc/private_pension_income_count_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_28_800_to_30_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 2660000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1df6f17a33011c1c026dbc09" + "resolved_value": 605.7777777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3f50c2d6d58a3a45681f0c5d" }, { - "name": "hmrc/private_pension_income_count_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_3_600_to_4_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 20000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_042ab8896eb0214e7bbad477" + "resolved_value": 10945.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ead4e96f4e609a16cf1e53e" }, { - "name": "hmrc/private_pension_income_count_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_4_800_to_6_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1450000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0a28fd76533fc93cf8dbfe4a" + "resolved_value": 12492.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6823b2987ba44d1b85428d2b" }, { - "name": "hmrc/private_pension_income_count_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_6_000_to_7_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 10000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7fccfc3ee4246841b3ed391b" + "resolved_value": 12979.666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3a3fc258bd18da8c60177380" }, { - "name": "hmrc/private_pension_income_count_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_7_200_to_8_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 779000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0f808aa135a13e5aa4668d22" + "resolved_value": 16484.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b75ef335d484f8dd9ae13a70" }, { - "name": "hmrc/private_pension_income_count_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_8_400_to_9_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 643000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_097efdacf2adf0f90f90d1de" + "resolved_value": 15272.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fcd000da1af753b61c9ac5df" }, { - "name": "hmrc/private_pension_income_count_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_9_600_to_10_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 4000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8abdd0aa368c3d693e6d0989" + "resolved_value": 19142.333333333332, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3d38fa50aa9bf0e85549ec9a" }, { - "name": "hmrc/private_pension_income_count_income_band_70_000_to_100_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_10_800_to_12_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 259000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_f75fc4c3e2cb06bbdb7543f8" + "resolved_value": 13313.333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6697a9dc6c88a1a0b0472a1e" } ] }, - "hmrc.spi.state_pension.amount_by_total_income_band": { + "dwp.uc.payment_distribution_couple_with_children": { "status": "active", "candidates": [ { - "name": "hmrc/state_pension_income_band_100_000_to_150_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 847000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d63e1a96cab57582f482b8c2" + "resolved_value": 19073.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8c1548028e499fa8399d1246" }, { - "name": "hmrc/state_pension_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_1_200_to_2_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 20000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_9a20bd62d4d5984865242929" + "resolved_value": 22775.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff2fef9bd96e583203e111d6" }, { - "name": "hmrc/state_pension_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_12_000_to_13_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 11800000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_45083c1383ea711226aebd1b" + "resolved_value": 40009.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fee1fd2227a87871edfe2bfa" }, { - "name": "hmrc/state_pension_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_13_200_to_14_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 22200000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_310febb949c686fad2b71a94" + "resolved_value": 39972.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b0427c86dc3df13761ab5b0" }, { - "name": "hmrc/state_pension_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_14_400_to_15_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 265000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_e79668076aadc063559585e9" + "resolved_value": 40518.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bfd9a57597b46f356ef9cfc9" }, { - "name": "hmrc/state_pension_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_15_600_to_16_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 24900000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3d18e138c32f6581d6dafdd7" + "resolved_value": 37118.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_328ed88b561971d4ee47d852" }, { - "name": "hmrc/state_pension_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_16_800_to_18_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 179000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_e1dda799099ac0f4f439700d" + "resolved_value": 37177.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c50c761ddfaab3cbfba62bfd" }, { - "name": "hmrc/state_pension_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_18_000_to_19_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 12300000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_151045b793ac454ab29260fc" + "resolved_value": 37164.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_74d32efc9f1984f60cbd9397" }, { - "name": "hmrc/state_pension_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_19_200_to_20_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 96000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c95154893499181b7f3a8903" + "resolved_value": 33309.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_90b7e15c6554b1c74e7055f3" }, { - "name": "hmrc/state_pension_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_20_400_to_21_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 6020000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_bc4cee7d39f5e1c311464a55" + "resolved_value": 29102.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_96f9b06f2d2afb65af9a224a" }, { - "name": "hmrc/state_pension_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_21_600_to_22_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 4660000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7f09c940c0fbc3cc42b9e510" + "resolved_value": 27534.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e65a50de282324e8c188863a" }, { - "name": "hmrc/state_pension_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_22_800_to_24_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 43000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d265dfcd4ba09d10053a78a4" + "resolved_value": 25584.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_16f48d435925ffa44f4d6871" }, { - "name": "hmrc/state_pension_income_band_70_000_to_100_000", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 1890000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_41c1df25454fdf413d5765d7" - } - ] - }, - "hmrc.spi.state_pension.count_by_total_income_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc/state_pension_count_income_band_100_000_to_150_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_2_400_to_3_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 74000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_01b8f391c006c09d3ed51865" + "resolved_value": 26502.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_93fd0534df01d1dade53397e" }, { - "name": "hmrc/state_pension_count_income_band_1_000_000_to_inf", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_24_000_to_25_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 2000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b8c359bb976d919bedb9076a" + "resolved_value": 22927.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffb787487a36c86f94d25a25" }, { - "name": "hmrc/state_pension_count_income_band_12_570_to_15_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_25_200_to_26_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1140000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_05f2cd00648c7f8225723a9c" + "resolved_value": 20334.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f4d504be6f184b7834f2687" }, { - "name": "hmrc/state_pension_count_income_band_15_000_to_20_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_26_400_to_27_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 2050000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ced75bd10fbfa56ef2eabeae" + "resolved_value": 17535.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_719022eef2836c069c4b02d0" }, { - "name": "hmrc/state_pension_count_income_band_150_000_to_200_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_27_600_to_28_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 21000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_73d438db1a168d794e290b0e" + "resolved_value": 15399.888888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b1d8f6516b32e39ecad3873" }, { - "name": "hmrc/state_pension_count_income_band_20_000_to_30_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 2320000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_69b521bf537da156d2afa48e" + "resolved_value": 12836.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_115a9ea1e35d76db13756149" }, { - "name": "hmrc/state_pension_count_income_band_200_000_to_300_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 14000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3edcf70605856bb8b906ea19" + "resolved_value": 29027.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_255e8c862df5351282c29809" }, { - "name": "hmrc/state_pension_count_income_band_30_000_to_40_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1160000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1cafb0f484a7d8191b7fb989" + "resolved_value": 32427.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_32261034f242507c0a7337b3" }, { - "name": "hmrc/state_pension_count_income_band_300_000_to_500_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_6_000_to_7_200", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 8000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7f510c873457703c57c16983" + "resolved_value": 34956.88888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6f40664df124c4dca50524b8" }, { - "name": "hmrc/state_pension_count_income_band_40_000_to_50_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 568000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d4ff6839b2d936396ae33f67" + "resolved_value": 37410.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_27b091b1a00bc33ab68139f8" }, { - "name": "hmrc/state_pension_count_income_band_50_000_to_70_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 441000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_2b5023baae0b6814c07afbe9" + "resolved_value": 39910.333333333336, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_22b16b470c0b51499fb2f042" }, { - "name": "hmrc/state_pension_count_income_band_500_000_to_1_000_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 3000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9a834c26fa7c215c052f4f5" + "resolved_value": 39368.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7dbca9e2f8508f1066399b73" }, { - "name": "hmrc/state_pension_count_income_band_70_000_to_100_000", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 176000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7514fbdbf5f909008b617d06" + "resolved_value": 40805.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_23cf62e7e58211e783c52d2e" } ] }, - "hmrc.cgt.taxpayers_total": { + "dwp.uc.scotland_households_child_under_1": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.taxpayers_total", + "name": "dwp.uc.scotland_households_child_under_1", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 551000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_31d709fc393c2bf4d04efca5" + "resolved_value": 14333.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e88b27e010e08ac8d36d0d30" } ] }, - "hmrc.cgt.gains_total": { + "dwp.uc.two_child_limit.households_affected": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.gains_total", + "name": "dwp.uc.two_child_limit.households_affected", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 119258000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_12060d20a417d85d67cf24e8" + "resolved_value": 469780.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_860a48172c62298ceb00c20b" } ] }, - "dwp.benefit_cap.capped_households": { + "dwp.uc.two_child_limit.children_affected": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households", + "name": "dwp.uc.two_child_limit.children_affected", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 110637.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_b698397897ed849f096cdd94" + "resolved_value": 597920.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_4378e45ac129e036b4a6ca03" } ] }, - "dwp.pip.daily_living_standard_claimants": { - "status": "no_fact_at_or_before_period", + "dwp.uc.two_child_limit.children_in_affected_households": { + "status": "active", "candidates": [ { - "name": "dwp.pip.daily_living_standard_claimants", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + "name": "dwp.uc.two_child_limit.children_in_affected_households", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 1665540.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_05774e34488c474df7f84742" } ] }, - "dwp.pip.daily_living_enhanced_claimants": { - "status": "no_fact_at_or_before_period", + "dwp.uc.two_child_limit.households_3_children": { + "status": "active", "candidates": [ { - "name": "dwp.pip.daily_living_enhanced_claimants", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + "name": "dwp.uc.two_child_limit.households_3_children", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 297310.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_dca7734c17910c213e397741" } ] }, - "dwp.esa_claimants": { + "dwp.uc.two_child_limit.children_in_3_children_households": { "status": "active", "candidates": [ { - "name": "dwp.esa_claimants", + "name": "dwp.uc.two_child_limit.children_in_3_children_households", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1000000.0, - "resolved_fact_period": "2025-08", - "resolved_fact_key": "ledger_aggregate_fact_v2_16ef67af9274891abd5e4fdc" + "resolved_value": 891930.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_515b2aeb394a9a9a1fd2d195" } ] }, - "dwp.esa_contrib_claimants": { + "dwp.uc.two_child_limit.households_4_children": { "status": "active", "candidates": [ { - "name": "dwp.esa_contrib_claimants", + "name": "dwp.uc.two_child_limit.households_4_children", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 620000.0, - "resolved_fact_period": "2025-08", - "resolved_fact_key": "ledger_aggregate_fact_v2_bf22883b03cf631864b2ae1d" + "resolved_value": 117190.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_a78a141d4018bdd92678b497" } ] }, - "dwp.esa_income_claimants": { + "dwp.uc.two_child_limit.children_in_4_children_households": { "status": "active", "candidates": [ { - "name": "dwp.esa_income_claimants", + "name": "dwp.uc.two_child_limit.children_in_4_children_households", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 180000.0, - "resolved_fact_period": "2025-08", - "resolved_fact_key": "ledger_aggregate_fact_v2_8684f0c35a1d71a291e61c81" + "resolved_value": 468760.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_adef094060710c5b354e7ac4" } ] }, - "dwp.jsa_claimants": { + "dwp.uc.two_child_limit.households_5_children": { "status": "active", "candidates": [ { - "name": "dwp.jsa_claimants", + "name": "dwp.uc.two_child_limit.households_5_children", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 71000.0, - "resolved_fact_period": "2025-08", - "resolved_fact_key": "ledger_aggregate_fact_v2_b5d92ff094ad2c534847291a" + "resolved_value": 37020.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_2c9cfcd7cc862c9c1dd57e4d" } ] }, - "dwp.uc.households_children_1": { + "dwp.uc.two_child_limit.children_in_5_children_households": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_children_1", + "name": "dwp.uc.two_child_limit.children_in_5_children_households", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1190123.8333333333, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_c1533879baf52aaa88758083" + "resolved_value": 185120.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_2134e60314c98faf54df2498" } ] }, - "dwp.uc.households_children_2": { + "dwp.uc.two_child_limit.households_6_plus_children": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_children_2", + "name": "dwp.uc.two_child_limit.households_6_plus_children", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1049895.5, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_46fca4f9d4e0519f0c190824" + "resolved_value": 18260.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_e6302f9f933c14e97fc2fcae" } ] }, - "dwp.uc.households_children_3": { + "dwp.uc.two_child_limit.children_in_6_plus_children_households": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_children_3", + "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 477887.6666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ba5bce203605d4e16037d311" + "resolved_value": 119720.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_235cb4e779dd669dad2cd421" } ] }, - "dwp.uc.households_children_4": { + "dwp.uc.two_child_limit.households_claimant_pip": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_children_4", + "name": "dwp.uc.two_child_limit.households_claimant_pip", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 170713.66666666666, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_33541aafa05a63dcae4fc144" + "resolved_value": 65280.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_55dd86462d71be247206b5a2" } ] }, - "dwp.uc.households_children_5_or_more": { + "dwp.uc.two_child_limit.children_claimant_pip": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_children_5_or_more", + "name": "dwp.uc.two_child_limit.children_claimant_pip", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 76320.08333333333, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_33d99593d166153ca2d0adec" + "resolved_value": 235270.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe554fcdcb22a77d71c01537" } ] }, - "dwp.uc.households_single_no_children": { + "dwp.uc.two_child_limit.households_disabled_child_element": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_single_no_children", + "name": "dwp.uc.two_child_limit.households_disabled_child_element", "status": "active", - "matched_fact_count_overall": 24, - "matched_fact_count_at_or_before_period": 24, - "matched_fact_count_in_source_window": 24, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2990070.1666666665, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_c013630f1154eb7252466457" + "resolved_value": 129630.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_535ef3b4afd474ea14d16d27" } ] }, - "dwp.uc.households_single_with_children": { + "dwp.uc.two_child_limit.children_disabled_child_element": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_single_with_children", + "name": "dwp.uc.two_child_limit.children_disabled_child_element", "status": "active", - "matched_fact_count_overall": 24, - "matched_fact_count_at_or_before_period": 24, - "matched_fact_count_in_source_window": 24, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2138780.1666666665, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_4e21ff5e364647d7c75589d2" + "resolved_value": 479460.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_ac642b7002518167b56e1537" } ] }, - "dwp.uc.households_couple_no_children": { + "ons.population.uk_total": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_couple_no_children", + "name": "ons.population.uk_total", "status": "active", - "matched_fact_count_overall": 24, - "matched_fact_count_at_or_before_period": 24, - "matched_fact_count_in_source_window": 24, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 241130.91666666666, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ad46a5483afd6bad20dc50fe" + "resolved_value": 69281437.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_6c212695ea75be0d2a635e9b" } ] }, - "dwp.uc.households_couple_with_children": { + "ons.population.age_0_9_by_region": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_couple_with_children", + "name": "ons.population.age_0_9_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 24, - "matched_fact_count_at_or_before_period": 24, - "matched_fact_count_in_source_window": 24, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 826160.8333333334, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_1a76243d3f616b19eaed3e0a" - } - ] - }, - "dwp.uc.payment_distribution_single": { - "status": "active", - "candidates": [ + "resolved_value": 285165.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c796672d4d88aa11ab15a31a" + }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_0_to_1_200", + "name": "ons.population.age_0_9_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 89479.33333333333, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_2ab0a2ad4fff5a73eb430af0" + "resolved_value": 865892.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_de0fc360f660f7a387628062" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_1_200_to_2_400", + "name": "ons.population.age_0_9_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 127403.22222222222, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_4da96f3f87204e3b63a7197e" + "resolved_value": 626938.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cbc8ee6d7552af4ba61edcb1" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_12_000_to_13_200", + "name": "ons.population.age_0_9_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 122035.55555555556, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_100f173ee4233f5ed3616bbc" + "resolved_value": 543004.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f858f629484e7989a9dc1f0b" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_13_200_to_14_400", + "name": "ons.population.age_0_9_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 197163.22222222222, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_263205affbfb94c0a87b7834" + "resolved_value": 718837.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_de2d9b45547f640fbc7ebb5a" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_14_400_to_15_600", + "name": "ons.population.age_0_9_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 209497.33333333334, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f4e51bd6399c4a72f10e625f" + "resolved_value": 744698.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fec32a4b3417958969f5f2d9" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_15_600_to_16_800", + "name": "ons.population.age_0_9_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 149963.22222222222, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_746aa1e8d116c4543251b137" + "resolved_value": 1054493.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cdd134faa924b905bd8a36ad" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_16_800_to_18_000", + "name": "ons.population.age_0_9_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 108689.66666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_0dc82a9ba1ce7a8ea1855991" + "resolved_value": 1059434.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0ef951a6bad79d44726fe11" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_18_000_to_19_200", + "name": "ons.population.age_0_9_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 61718.666666666664, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_4399ab26a944d2d46a12311d" + "resolved_value": 575506.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d6a250010241c987a217b54f" + }, + { + "name": "ons.population.age_0_9_by_region@W92000004", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", + "resolved_period": 2025, + "resolved_value": 321552.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eef268031d128fde4eec5d91" + }, + { + "name": "ons.population.age_0_9_by_region@S92000003", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", + "resolved_period": 2025, + "resolved_value": 527989.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" + }, + { + "name": "ons.population.age_0_9_by_region@N92000002", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", + "resolved_period": 2025, + "resolved_value": 229505.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb8519582dac5a21a72f8360" + } + ] + }, + "ons.population.age_10_19_by_region": { + "status": "active", + "candidates": [ + { + "name": "ons.population.age_10_19_by_region@E12000001", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 326306.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ce36092d33f50f712f620485" + }, + { + "name": "ons.population.age_10_19_by_region@E12000002", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 952864.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f6fc45432de26717dc50151d" + }, + { + "name": "ons.population.age_10_19_by_region@E12000003", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 696780.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f1942c03893e2aeccb514e34" + }, + { + "name": "ons.population.age_10_19_by_region@E12000004", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 615630.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d96b0e1445c879a8267ef553" + }, + { + "name": "ons.population.age_10_19_by_region@E12000005", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 785062.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff921d8727a6c1ea11548896" + }, + { + "name": "ons.population.age_10_19_by_region@E12000006", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 785091.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d66fd1b48bc1e9ae4d38f778" + }, + { + "name": "ons.population.age_10_19_by_region@E12000007", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 1068691.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8b79fef8b80acc1deb297b7" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_19_200_to_20_400", + "name": "ons.population.age_10_19_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 34050.444444444445, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_b8ab0a63fbef46e02aa34d37" + "resolved_value": 1183235.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ba4c8f8e6cb789626f191523" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_20_400_to_21_600", + "name": "ons.population.age_10_19_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 22338.333333333332, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_d22d996cd3edb838030ab0dc" + "resolved_value": 677228.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8ea04bba18d65ed2ac0dd74" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_21_600_to_22_800", + "name": "ons.population.age_10_19_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 14685.777777777777, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_404ce9f1ea3e17ec602a1de9" + "resolved_value": 374851.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f040814c3de37f315671a60d" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_22_800_to_24_000", + "name": "ons.population.age_10_19_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 11133.666666666666, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_d2268373d3e5894e10f3f004" + "resolved_value": 612935.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d8cb95f3b8a4eb5725ec1e0d" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_2_400_to_3_600", + "name": "ons.population.age_10_19_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 197136.66666666666, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_37e9e071fb187dab220f3876" - }, + "resolved_value": 252764.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef301c6ab42b35eb692e20b0" + } + ] + }, + "ons.population.age_20_29_by_region": { + "status": "active", + "candidates": [ { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_24_000_to_25_200", + "name": "ons.population.age_20_29_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 6951.222222222223, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_8af773c191130cd03d9de884" + "resolved_value": 343015.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ebe0b2ced4987cd701db581a" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_25_200_to_26_400", + "name": "ons.population.age_20_29_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 6508.222222222223, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f46b09c321cf98f8e0d12b89" + "resolved_value": 986590.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe94b1572d6db93b57407bcd" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_26_400_to_27_600", + "name": "ons.population.age_20_29_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 5913.444444444444, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_a763ca2d87febd61de26d8b0" + "resolved_value": 717479.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cb721748c503839a9229a404" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_27_600_to_28_800", + "name": "ons.population.age_20_29_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 1884.111111111111, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_8b6d8894debcbda5e38c0923" + "resolved_value": 612108.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7be7895d4f680a502caeb4b" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_28_800_to_30_000", + "name": "ons.population.age_20_29_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 1653.7777777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_aa3077a36f37ae73562e57fc" + "resolved_value": 766058.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f539e665a5478f92346bb4d4" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_3_600_to_4_800", + "name": "ons.population.age_20_29_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 377063.1111111111, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_988e854b9584a36b1b62810f" + "resolved_value": 727218.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff31c89cfa957bdd279c9947" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_4_800_to_6_000", + "name": "ons.population.age_20_29_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 195983.22222222222, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_7a3e7c9563c15ba28ffd3c3e" + "resolved_value": 1508607.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0ffc4e5795625b9238d6dde" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_6_000_to_7_200", + "name": "ons.population.age_20_29_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 114033.33333333333, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_294fdb23cc02a98334267137" + "resolved_value": 1066121.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f3a720e9d1d4664e83307a9a" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_7_200_to_8_400", + "name": "ons.population.age_20_29_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 149043.77777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_5d4a92d292c96a2f440dee5a" + "resolved_value": 684393.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe520978b4f4105aa292a3f5" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_8_400_to_9_600", + "name": "ons.population.age_20_29_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 399750.22222222225, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ad92f85c0ac85ea7bb6e8ca3" + "resolved_value": 380557.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe44434fdb2e33179826ee35" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_9_600_to_10_800", + "name": "ons.population.age_20_29_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 386411.6666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e2bbf1fe386cfcd8db712026" + "resolved_value": 703554.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_dadba40aea2eb5dcdb2e5d6e" }, { - "name": "dwp/uc_payment_dist/SINGLE_annual_payment_10_800_to_12_000", + "name": "ons.population.age_20_29_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 104891.11111111111, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_de2719af6e4d5f9ffe65aaee" + "resolved_value": 219525.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_afe826389a344a01c4be2862" } ] }, - "dwp.uc.payment_distribution_lone_parent": { + "ons.population.age_30_39_by_region": { "status": "active", "candidates": [ { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_0_to_1_200", - "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 26670.222222222223, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_7b17c88cf49645b2d3ef44a6" - }, - { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_1_200_to_2_400", + "name": "ons.population.age_30_39_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 36208.11111111111, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_765ace417ceafd524ffda4c0" + "resolved_value": 363357.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ceb94ab430de1f0bc8c19ce4" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_12_000_to_13_200", + "name": "ons.population.age_30_39_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 125798.44444444444, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_eaddee052a3861f259b93272" + "resolved_value": 1064968.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eeb6e6194f0405a4b7010913" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_13_200_to_14_400", + "name": "ons.population.age_30_39_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 129133.66666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_b8d66013c8a68e423f507be8" + "resolved_value": 770809.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ebc2a149da9287a3a2b28d45" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_14_400_to_15_600", + "name": "ons.population.age_30_39_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 115856.66666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_1bc84efe74c485d143caab7b" + "resolved_value": 676709.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fefffb16e9e1a25fd0da3435" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_15_600_to_16_800", + "name": "ons.population.age_30_39_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 125660.22222222222, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e26d2d7e425a94fd9fde3d17" + "resolved_value": 839114.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eaee3d4e99154692dbad24b9" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_16_800_to_18_000", + "name": "ons.population.age_30_39_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 135836.77777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_8fa2e062c33297530d458054" + "resolved_value": 895639.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fbb89267af1b9a1a349f3274" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_18_000_to_19_200", + "name": "ons.population.age_30_39_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 135444.88888888888, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_77cb72042ffb9b2b1af769e3" + "resolved_value": 1537372.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c7d5874566b099143ddbac28" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_19_200_to_20_400", + "name": "ons.population.age_30_39_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 106341.88888888889, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_acb89a96425fd7af119e0c3b" + "resolved_value": 1284552.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4aa5baed49b53887253b70" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_20_400_to_21_600", + "name": "ons.population.age_30_39_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 85490.44444444444, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3aa5825f5e5e8dbc570c0af1" + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", + "resolved_period": 2025, + "resolved_value": 742082.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8c6ce01a5aa83ce392ccf3a" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_21_600_to_22_800", + "name": "ons.population.age_30_39_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 80226.88888888889, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_c5a0ee450c3ad7f882dfb167" + "resolved_value": 410248.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fa74c4da871af17e8af431d6" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_22_800_to_24_000", + "name": "ons.population.age_30_39_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 71259.55555555556, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_13ffca0d11c038fc7d096ec9" + "resolved_value": 733480.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f045b554aebb8f1b21df5a5c" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_2_400_to_3_600", + "name": "ons.population.age_30_39_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 46312.77777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6619e26753d01d76247e1759" - }, + "resolved_value": 254067.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb383d007487ef1df14f4946" + } + ] + }, + "ons.population.age_40_49_by_region": { + "status": "active", + "candidates": [ { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_24_000_to_25_200", + "name": "ons.population.age_40_49_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 51301.666666666664, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_4a935006e5c346bfe0009055" + "resolved_value": 320860.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f081bcb6c2e794e8ec3b0161" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_25_200_to_26_400", + "name": "ons.population.age_40_49_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 43305.22222222222, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e64560bd9c14d083cd03c985" + "resolved_value": 930967.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7744877e123c00b96511818" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_26_400_to_27_600", + "name": "ons.population.age_40_49_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 34910.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_8e16d0c97924701eb074c25d" + "resolved_value": 674349.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d6e708c298712163b552e6c7" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_27_600_to_28_800", + "name": "ons.population.age_40_49_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 28513.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_cf9757018b0d313f20342b59" + "resolved_value": 610611.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e861cd162b6b06a1107ca177" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_28_800_to_30_000", + "name": "ons.population.age_40_49_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 22593.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6bede883f015e48e86c0a2de" + "resolved_value": 746341.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fa28a64a0b8ec87502b44a9f" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_3_600_to_4_800", + "name": "ons.population.age_40_49_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 60310.11111111111, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_b0710535c8b6006db118eb3b" + "resolved_value": 838578.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f94400c214a5c3c3847cc562" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_4_800_to_6_000", + "name": "ons.population.age_40_49_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 67858.66666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_b4008c8b22190b4ee185d4f6" + "resolved_value": 1268973.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb8228a78efb8cdb3dd46764" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_6_000_to_7_200", + "name": "ons.population.age_40_49_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 89577.44444444444, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_1d1fadffae053bf60d7fcd7e" + "resolved_value": 1255951.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_edac715ea904f29dbd3332f9" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_7_200_to_8_400", + "name": "ons.population.age_40_49_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 116076.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_fae65610a14d6c22f475d757" + "resolved_value": 688417.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f6ecf5ebd09a5d638cf6dd15" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_8_400_to_9_600", + "name": "ons.population.age_40_49_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 97511.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_540c0869e23edc4a402166bf" + "resolved_value": 365951.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f6496b4ebd88792d288206a1" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_9_600_to_10_800", + "name": "ons.population.age_40_49_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 102343.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_a170bf444a17ae88a80766b0" + "resolved_value": 675368.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e159eb5144ceae58dccb4dc0" }, { - "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_10_800_to_12_000", + "name": "ons.population.age_40_49_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 123718.11111111111, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_b7d0d6add859217e797a66ea" + "resolved_value": 246140.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b71979cb27997e512ea68888" } ] }, - "dwp.uc.payment_distribution_couple_no_children": { + "ons.population.age_50_59_by_region": { "status": "active", "candidates": [ { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_0_to_1_200", - "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 7506.333333333333, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e8af6f4ef9d70ded4a4bf6b5" - }, - { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_1_200_to_2_400", - "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 8797.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_28514ff922f7b00a4706e74b" - }, - { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_12_000_to_13_200", + "name": "ons.population.age_50_59_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 16121.444444444445, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_8b8e20276b7af9f670009f64" + "resolved_value": 360074.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8febade5d1aa4eff5515f79" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_13_200_to_14_400", + "name": "ons.population.age_50_59_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 13317.333333333334, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_22e83b92481a8b2267a15309" + "resolved_value": 995810.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ce316c567d2d3919bad74247" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_14_400_to_15_600", + "name": "ons.population.age_50_59_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 19657.333333333332, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_42f1cbfe9fee5eb33f69088d" + "resolved_value": 736903.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f07e470e70895701083be7b4" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_15_600_to_16_800", + "name": "ons.population.age_50_59_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 16443.222222222223, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_aed9bf66bdbc046ee991fcf5" + "resolved_value": 676307.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fc3b848c0d546908542f7522" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_16_800_to_18_000", + "name": "ons.population.age_50_59_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 13441.111111111111, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_7ccb1420b8ca3e26048291b9" + "resolved_value": 794143.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eced9fed4ca113ee655134b7" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_18_000_to_19_200", + "name": "ons.population.age_50_59_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 10728.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_a7057ddde3cd2ffaed246687" + "resolved_value": 866946.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8011436193a375ac63a33af" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_19_200_to_20_400", + "name": "ons.population.age_50_59_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 9653.222222222223, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3e228ab480713f15af6e847c" + "resolved_value": 1087518.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c0999183e74a6f6978377427" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_20_400_to_21_600", + "name": "ons.population.age_50_59_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 6486.888888888889, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ecfd0dfe25ebc098ade1e902" + "resolved_value": 1287719.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f5b6740db34f7f702bb230fb" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_21_600_to_22_800", + "name": "ons.population.age_50_59_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 3981.8888888888887, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_2bbf9ab64d9fde9025452375" + "resolved_value": 784718.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cf32f90895454cdb82d3a611" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_22_800_to_24_000", + "name": "ons.population.age_50_59_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 2761.4444444444443, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f19a927835e2aa12a94f6279" + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", + "resolved_period": 2025, + "resolved_value": 424694.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ed905faab304a40013587ffd" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", + "name": "ons.population.age_50_59_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 12256.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_46ba331006269a96f7aee844" + "resolved_value": 766715.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f332e28940d1c94b1e2dec31" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_24_000_to_25_200", + "name": "ons.population.age_50_59_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 2131.222222222222, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_dd2ddbef54fc0ec48f61d7b0" + "resolved_value": 255269.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f786aada1891e9f309902c1c" + } + ] + }, + "ons.population.age_60_69_by_region": { + "status": "active", + "candidates": [ + { + "name": "ons.population.age_60_69_by_region@E12000001", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 349719.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4466f1cb6fb29ce9b132b0" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_25_200_to_26_400", + "name": "ons.population.age_60_69_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 1475.3333333333333, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3ea2b4312343be8d41a37265" + "resolved_value": 884043.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f861d328dbb8a01929eb1e91" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_26_400_to_27_600", + "name": "ons.population.age_60_69_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 1073.7777777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_55cf1a8742443b096e81b33e" + "resolved_value": 652931.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9ab6846d67db88fda81fa30" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_27_600_to_28_800", + "name": "ons.population.age_60_69_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 746.3333333333334, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6cd7a2f97a5e43ba25481719" + "resolved_value": 591429.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e884ef403c95938c7ebf961b" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_28_800_to_30_000", + "name": "ons.population.age_60_69_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 605.7777777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3f50c2d6d58a3a45681f0c5d" + "resolved_value": 677922.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd4d62d07376896553d9fb66" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_3_600_to_4_800", + "name": "ons.population.age_60_69_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 10945.444444444445, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ead4e96f4e609a16cf1e53e" + "resolved_value": 744651.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f77f96051d8340645148d138" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_4_800_to_6_000", + "name": "ons.population.age_60_69_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 12492.444444444445, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6823b2987ba44d1b85428d2b" + "resolved_value": 787666.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e9f63f0939b77a41ec815de0" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_6_000_to_7_200", + "name": "ons.population.age_60_69_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 12979.666666666666, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3a3fc258bd18da8c60177380" + "resolved_value": 1089421.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8667b0358441f18c2f8e548" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_7_200_to_8_400", + "name": "ons.population.age_60_69_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 16484.444444444445, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_b75ef335d484f8dd9ae13a70" + "resolved_value": 736639.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f923cb193de625676c40b5c4" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_8_400_to_9_600", + "name": "ons.population.age_60_69_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 15272.444444444445, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_fcd000da1af753b61c9ac5df" + "resolved_value": 401775.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f518ad65099be8a424a62142" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_9_600_to_10_800", + "name": "ons.population.age_60_69_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 19142.333333333332, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3d38fa50aa9bf0e85549ec9a" + "resolved_value": 721727.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e893656e104d3c1c375fa5e7" }, { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_10_800_to_12_000", + "name": "ons.population.age_60_69_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 13313.333333333334, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6697a9dc6c88a1a0b0472a1e" + "resolved_value": 223111.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9f6e8f32b460fefc304aeee" } ] }, - "dwp.uc.payment_distribution_couple_with_children": { + "ons.population.age_70_79_by_region": { "status": "active", "candidates": [ { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", + "name": "ons.population.age_70_79_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 19073.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_8c1548028e499fa8399d1246" + "resolved_value": 265573.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f135bc83bf0e2495ccab922b" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_1_200_to_2_400", + "name": "ons.population.age_70_79_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 22775.777777777777, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff2fef9bd96e583203e111d6" + "resolved_value": 669277.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f18853f5a9046c59334188d3" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_12_000_to_13_200", + "name": "ons.population.age_70_79_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 40009.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_fee1fd2227a87871edfe2bfa" + "resolved_value": 504131.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f71c0090e322cc6b02a80193" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_13_200_to_14_400", + "name": "ons.population.age_70_79_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 39972.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3b0427c86dc3df13761ab5b0" + "resolved_value": 466530.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f1eaa2a27d34d75f4fcaf147" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_14_400_to_15_600", + "name": "ons.population.age_70_79_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 40518.77777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_bfd9a57597b46f356ef9cfc9" + "resolved_value": 528207.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f6ed607ecc20a6bd1c0c8bef" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_15_600_to_16_800", + "name": "ons.population.age_70_79_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 37118.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_328ed88b561971d4ee47d852" + "resolved_value": 599882.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef2c110c9bb5462379338b17" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_16_800_to_18_000", + "name": "ons.population.age_70_79_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 37177.77777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_c50c761ddfaab3cbfba62bfd" + "resolved_value": 485057.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d9b7f415855dd808a1aee77c" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_18_000_to_19_200", + "name": "ons.population.age_70_79_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 37164.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_74d32efc9f1984f60cbd9397" + "resolved_value": 865392.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_dea0c6655095781f862cf7ac" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_19_200_to_20_400", + "name": "ons.population.age_70_79_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 33309.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_90b7e15c6554b1c74e7055f3" + "resolved_value": 618254.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e8898137aad748593321b2fb" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_20_400_to_21_600", + "name": "ons.population.age_70_79_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 29102.555555555555, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_96f9b06f2d2afb65af9a224a" + "resolved_value": 321668.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f1de159eac6f90c69f7aef22" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_21_600_to_22_800", + "name": "ons.population.age_70_79_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 27534.666666666668, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e65a50de282324e8c188863a" + "resolved_value": 519252.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f506930ca553f609fe076c9c" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_22_800_to_24_000", + "name": "ons.population.age_70_79_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 25584.777777777777, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_16f48d435925ffa44f4d6871" - }, + "resolved_value": 155382.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ec559b1c9b44b3acc8de9073" + } + ] + }, + "ons.population.age_80_89_by_region": { + "status": "active", + "candidates": [ { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_2_400_to_3_600", + "name": "ons.population.age_80_89_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 26502.666666666668, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_93fd0534df01d1dade53397e" + "resolved_value": 122118.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eec7f31aac48f686e0d9a343" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_24_000_to_25_200", + "name": "ons.population.age_80_89_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 22927.777777777777, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffb787487a36c86f94d25a25" + "resolved_value": 324141.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f5dcf6bfa6186fc6200bb9cd" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_25_200_to_26_400", + "name": "ons.population.age_80_89_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 20334.666666666668, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_2f4d504be6f184b7834f2687" + "resolved_value": 243274.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ed30948324557f6bd25a0064" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_26_400_to_27_600", + "name": "ons.population.age_80_89_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 17535.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_719022eef2836c069c4b02d0" + "resolved_value": 225626.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f32be81803e3b527361467e0" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_27_600_to_28_800", + "name": "ons.population.age_80_89_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 15399.888888888889, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3b1d8f6516b32e39ecad3873" + "resolved_value": 275030.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f252d1b20801bc91a40a9a12" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", + "name": "ons.population.age_80_89_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 12836.222222222223, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_115a9ea1e35d76db13756149" + "resolved_value": 305691.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d387c1edf10113b2b8602fc3" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", + "name": "ons.population.age_80_89_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 29027.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_255e8c862df5351282c29809" + "resolved_value": 237061.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fa7d5971f83d3ece501a33c7" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", + "name": "ons.population.age_80_89_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 32427.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_32261034f242507c0a7337b3" + "resolved_value": 447958.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_bb61f66f5159481b73615674" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_6_000_to_7_200", + "name": "ons.population.age_80_89_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 34956.88888888889, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6f40664df124c4dca50524b8" + "resolved_value": 313605.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ea5f3461bbda1967761f0d48" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", + "name": "ons.population.age_80_89_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 37410.77777777778, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_27b091b1a00bc33ab68139f8" + "resolved_value": 154319.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d766d2003f1fd56635d53589" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", + "name": "ons.population.age_80_89_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 39910.333333333336, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_22b16b470c0b51499fb2f042" + "resolved_value": 238904.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f206015a88100a72b83bbe9f" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", + "name": "ons.population.age_80_89_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 39368.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_7dbca9e2f8508f1066399b73" - }, + "resolved_value": 77441.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb5795d1ea12a7a7005a9ee9" + } + ] + }, + "ons.population.female_0_4": { + "status": "active", + "candidates": [ { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", + "name": "ons.population.female_0_4", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 40805.444444444445, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_23cf62e7e58211e783c52d2e" + "resolved_value": 1744355.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb55d5f20f74ee39a1e8fcb4" } ] }, - "dwp.uc.scotland_households_child_under_1": { + "ons.population.female_10_14": { "status": "active", "candidates": [ { - "name": "dwp.uc.scotland_households_child_under_1", + "name": "ons.population.female_10_14", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 14333.222222222223, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e88b27e010e08ac8d36d0d30" + "resolved_value": 2052052.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9a457edc9491e5810c39f5f" } ] }, - "dwp.uc.two_child_limit.households_affected": { + "ons.population.female_15_19": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_affected", + "name": "ons.population.female_15_19", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 469780.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_860a48172c62298ceb00c20b" + "resolved_value": 2002835.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0e2139b52c615925c9075dd" } ] }, - "dwp.uc.two_child_limit.children_affected": { + "ons.population.female_20_24": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_affected", + "name": "ons.population.female_20_24", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 597920.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_4378e45ac129e036b4a6ca03" + "resolved_value": 2034609.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b4e36c0dc0a924667be47bbc" } ] }, - "dwp.uc.two_child_limit.children_in_affected_households": { + "ons.population.female_25_29": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_affected_households", + "name": "ons.population.female_25_29", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1665540.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_05774e34488c474df7f84742" + "resolved_value": 2291610.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d9d6a711d0cbc4919a8643c0" } ] }, - "dwp.uc.two_child_limit.households_3_children": { + "ons.population.female_30_34": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_3_children", + "name": "ons.population.female_30_34", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 297310.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_dca7734c17910c213e397741" + "resolved_value": 2463301.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f5b1d6c400b912b05c79c477" } ] }, - "dwp.uc.two_child_limit.children_in_3_children_households": { + "ons.population.female_35_39": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_3_children_households", + "name": "ons.population.female_35_39", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 891930.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_515b2aeb394a9a9a1fd2d195" + "resolved_value": 2472291.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f927cc9b3eab0494caf1479f" } ] }, - "dwp.uc.two_child_limit.households_4_children": { + "ons.population.female_40_44": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_4_children", + "name": "ons.population.female_40_44", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 117190.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_a78a141d4018bdd92678b497" + "resolved_value": 2333109.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d9cdf746ffe5df2fd3d85279" } ] }, - "dwp.uc.two_child_limit.children_in_4_children_households": { + "ons.population.female_45_49": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_4_children_households", + "name": "ons.population.female_45_49", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 468760.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_adef094060710c5b354e7ac4" + "resolved_value": 2088285.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b679e4770750b86af6b1756b" } ] }, - "dwp.uc.two_child_limit.households_5_children": { + "ons.population.female_50_54": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_5_children", + "name": "ons.population.female_50_54", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 37020.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_2c9cfcd7cc862c9c1dd57e4d" + "resolved_value": 2255231.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_65b8a4cc92c4565b00007877" + } + ] + }, + "ons.population.female_55_59": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_55_59", + "status": "active", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "resolved_period": 2025, + "resolved_value": 2360202.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ba87a7d66cb9f8694b952159" } ] }, - "dwp.uc.two_child_limit.children_in_5_children_households": { + "ons.population.female_5_9": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_5_children_households", + "name": "ons.population.female_5_9", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 185120.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_2134e60314c98faf54df2498" + "resolved_value": 1941658.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_bca9c38347810a944bbd08b3" } ] }, - "dwp.uc.two_child_limit.households_6_plus_children": { + "ons.population.female_60_64": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_6_plus_children", + "name": "ons.population.female_60_64", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 18260.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_e6302f9f933c14e97fc2fcae" + "resolved_value": 2193915.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f3b1f78e4b752640465521f0" } ] }, - "dwp.uc.two_child_limit.children_in_6_plus_children_households": { + "ons.population.female_65_69": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", + "name": "ons.population.female_65_69", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 119720.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_235cb4e779dd669dad2cd421" + "resolved_value": 1838574.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_dbeb583b16bcb530ee1296e1" } ] }, - "dwp.uc.two_child_limit.households_claimant_pip": { + "ons.population.female_70_74": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_claimant_pip", + "name": "ons.population.female_70_74", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 65280.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_55dd86462d71be247206b5a2" + "resolved_value": 1622996.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b962c8b6d3d68808831aad6a" } ] }, - "dwp.uc.two_child_limit.children_claimant_pip": { + "ons.population.female_75_79": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_claimant_pip", + "name": "ons.population.female_75_79", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 235270.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe554fcdcb22a77d71c01537" + "resolved_value": 1551183.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_aa0a8a7ab2d3894db7a7d7aa" } ] }, - "dwp.uc.two_child_limit.households_disabled_child_element": { + "ons.population.female_80_84": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_disabled_child_element", + "name": "ons.population.female_80_84", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 129630.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_535ef3b4afd474ea14d16d27" + "resolved_value": 1024480.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fcdc2e2f119de0b65769ef90" } ] }, - "dwp.uc.two_child_limit.children_disabled_child_element": { + "ons.population.female_85_89": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_disabled_child_element", + "name": "ons.population.female_85_89", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 479460.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_ac642b7002518167b56e1537" + "resolved_value": 665267.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c76df00751abbf64b5ab056b" } ] }, - "ons.population.uk_total": { + "ons.population.female_90_plus": { "status": "active", "candidates": [ { - "name": "ons.population.uk_total", + "name": "ons.population.female_90_plus", "status": "active", "matched_fact_count_overall": 2, "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 69281437.0, + "resolved_value": 414716.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6c212695ea75be0d2a635e9b" + "resolved_fact_key": "ledger_aggregate_fact_v2_009d5dd487f317483e9d7b3d" } ] }, - "ons.population.age_0_9_by_region": { + "ons.population.male_0_4": { "status": "active", "candidates": [ { - "name": "ons.population.age_0_9_by_region", + "name": "ons.population.male_0_4", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 7553013.0, + "resolved_value": 1829801.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b94a17afcae0f28216f5c756" + "resolved_fact_key": "ledger_aggregate_fact_v2_ccdfe5dde7b46840510e21d2" } ] }, - "ons.population.age_10_19_by_region": { + "ons.population.male_10_14": { "status": "active", "candidates": [ { - "name": "ons.population.age_10_19_by_region", + "name": "ons.population.male_10_14", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 8331437.0, + "resolved_value": 2152800.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ec5be4478e3e8a5ed9186e22" + "resolved_fact_key": "ledger_aggregate_fact_v2_86d603b352e77fd0c03ddaa8" } ] }, - "ons.population.age_20_29_by_region": { + "ons.population.male_15_19": { "status": "active", "candidates": [ { - "name": "ons.population.age_20_29_by_region", + "name": "ons.population.male_15_19", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 8715225.0, + "resolved_value": 2123750.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed0cabd54beb345a04d236b1" + "resolved_fact_key": "ledger_aggregate_fact_v2_ecf390d4b25b71d12aae6bc7" } ] }, - "ons.population.age_30_39_by_region": { + "ons.population.male_20_24": { "status": "active", "candidates": [ { - "name": "ons.population.age_30_39_by_region", + "name": "ons.population.male_20_24", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 9572397.0, + "resolved_value": 2131646.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f3cd6e4fd7249a0ef2be0ffb" + "resolved_fact_key": "ledger_aggregate_fact_v2_edb961b3528b22769eece352" } ] }, - "ons.population.age_40_49_by_region": { + "ons.population.male_25_29": { "status": "active", "candidates": [ { - "name": "ons.population.age_40_49_by_region", + "name": "ons.population.male_25_29", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 8622506.0, + "resolved_value": 2257360.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f618aa084dbd211cdca7c544" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd52338de8e1557cdd024c36" } ] }, - "ons.population.age_50_59_by_region": { + "ons.population.male_30_34": { "status": "active", "candidates": [ { - "name": "ons.population.age_50_59_by_region", + "name": "ons.population.male_30_34", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 9036816.0, + "resolved_value": 2333326.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8fb3f14e335149ae47e882a" + "resolved_fact_key": "ledger_aggregate_fact_v2_b81f56fab808ad1d38d70f3d" } ] }, - "ons.population.age_60_69_by_region": { + "ons.population.male_35_39": { "status": "active", "candidates": [ { - "name": "ons.population.age_60_69_by_region", + "name": "ons.population.male_35_39", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 7861034.0, + "resolved_value": 2303479.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc9476cc3d2ecd4fb1fd9403" + "resolved_fact_key": "ledger_aggregate_fact_v2_be9bedc792e0d419ebaf5316" } ] }, - "ons.population.age_70_79_by_region": { + "ons.population.male_40_44": { "status": "active", "candidates": [ { - "name": "ons.population.age_70_79_by_region", + "name": "ons.population.male_40_44", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 5998605.0, + "resolved_value": 2196013.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffd4d3a0d7b8b5e4667d53d8" + "resolved_fact_key": "ledger_aggregate_fact_v2_d41ff91bfe885debcc12d759" } ] }, - "ons.population.age_80_89_by_region": { + "ons.population.male_45_49": { "status": "active", "candidates": [ { - "name": "ons.population.age_80_89_by_region", + "name": "ons.population.male_45_49", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2965168.0, + "resolved_value": 2005099.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f2dffa4221fe14e9138365b0" + "resolved_fact_key": "ledger_aggregate_fact_v2_fafcbae6e55f9ae20bc0050d" } ] }, - "ons.population.female_0_4": { + "ons.population.male_50_54": { "status": "active", "candidates": [ { - "name": "ons.population.female_0_4", + "name": "ons.population.male_50_54", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1744355.0, + "resolved_value": 2164862.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb55d5f20f74ee39a1e8fcb4" + "resolved_fact_key": "ledger_aggregate_fact_v2_b8fe92cfb43b9a95f8a9f7ef" } ] }, - "ons.population.female_10_14": { + "ons.population.male_55_59": { "status": "active", "candidates": [ { - "name": "ons.population.female_10_14", + "name": "ons.population.male_55_59", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2052052.0, + "resolved_value": 2256521.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9a457edc9491e5810c39f5f" + "resolved_fact_key": "ledger_aggregate_fact_v2_86b57e4ed1e5186f23dc4021" } ] }, - "ons.population.female_15_19": { + "ons.population.male_5_9": { "status": "active", "candidates": [ { - "name": "ons.population.female_15_19", + "name": "ons.population.male_5_9", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2002835.0, + "resolved_value": 2037199.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0e2139b52c615925c9075dd" + "resolved_fact_key": "ledger_aggregate_fact_v2_e272f955c58535b8b9304759" } ] }, - "ons.population.female_20_24": { + "ons.population.male_60_64": { "status": "active", "candidates": [ { - "name": "ons.population.female_20_24", + "name": "ons.population.male_60_64", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2034609.0, + "resolved_value": 2094462.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b4e36c0dc0a924667be47bbc" + "resolved_fact_key": "ledger_aggregate_fact_v2_e60d33e33dcbc1ba2292edf5" } ] }, - "ons.population.female_25_29": { + "ons.population.male_65_69": { "status": "active", "candidates": [ { - "name": "ons.population.female_25_29", + "name": "ons.population.male_65_69", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2291610.0, + "resolved_value": 1734083.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9d6a711d0cbc4919a8643c0" + "resolved_fact_key": "ledger_aggregate_fact_v2_a4878efd0023575bded6b67a" } ] }, - "ons.population.female_30_34": { + "ons.population.male_70_74": { "status": "active", "candidates": [ { - "name": "ons.population.female_30_34", + "name": "ons.population.male_70_74", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2463301.0, + "resolved_value": 1473758.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5b1d6c400b912b05c79c477" + "resolved_fact_key": "ledger_aggregate_fact_v2_d34aca91f9d1621ea96e72bc" } ] }, - "ons.population.female_35_39": { + "ons.population.male_75_79": { "status": "active", "candidates": [ { - "name": "ons.population.female_35_39", + "name": "ons.population.male_75_79", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2472291.0, + "resolved_value": 1350668.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f927cc9b3eab0494caf1479f" + "resolved_fact_key": "ledger_aggregate_fact_v2_f74158203e735d37a67c5409" } ] }, - "ons.population.female_40_44": { + "ons.population.male_80_84": { "status": "active", "candidates": [ { - "name": "ons.population.female_40_44", + "name": "ons.population.male_80_84", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2333109.0, + "resolved_value": 815910.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9cdf746ffe5df2fd3d85279" + "resolved_fact_key": "ledger_aggregate_fact_v2_60aa57af44ada9286df3d649" } ] }, - "ons.population.female_45_49": { + "ons.population.male_85_89": { "status": "active", "candidates": [ { - "name": "ons.population.female_45_49", + "name": "ons.population.male_85_89", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2088285.0, + "resolved_value": 459511.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b679e4770750b86af6b1756b" + "resolved_fact_key": "ledger_aggregate_fact_v2_bbfd4e781a7d1151855e4edb" } ] }, - "ons.population.female_50_54": { + "ons.population.male_90_plus": { "status": "active", "candidates": [ { - "name": "ons.population.female_50_54", + "name": "ons.population.male_90_plus", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2255231.0, + "resolved_value": 210520.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_65b8a4cc92c4565b00007877" + "resolved_fact_key": "ledger_aggregate_fact_v2_8ec6d2d034546c9693c4f6ed" } ] }, - "ons.population.female_55_59": { + "ons.population.scotland_children_under_16": { "status": "active", "candidates": [ { - "name": "ons.population.female_55_59", + "name": "ons.population.scotland_children_under_16", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 32, + "matched_fact_count_at_or_before_period": 32, "resolved_period": 2025, - "resolved_value": 2360202.0, + "resolved_value": 896833.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ba87a7d66cb9f8694b952159" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" } ] }, - "ons.population.female_5_9": { + "ons.population.scotland_babies_under_1": { "status": "active", "candidates": [ { - "name": "ons.population.female_5_9", + "name": "ons.population.scotland_babies_under_1", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 1941658.0, + "resolved_value": 46776.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bca9c38347810a944bbd08b3" + "resolved_fact_key": "ledger_aggregate_fact_v2_edd043df0081e63ad0876932" } ] }, - "ons.population.female_60_64": { + "ons.population.scotland_households_3plus_children": { + "status": "signed_excluded", + "candidates": [ + { + "name": "ons.population.scotland_households_3plus_children", + "status": "signed_excluded", + "matched_fact_count_overall": 552, + "matched_fact_count_at_or_before_period": 552, + "signed_rationale": "Signed out pending a Scotland household-composition fact: the current selector reaches person-level ONS mid-year population age rows, not households with three or more children. microcosm#736 tracks the missing declaration." + } + ] + }, + "ons.household_composition.lone_households_under_65": { "status": "active", "candidates": [ { - "name": "ons.population.female_60_64", + "name": "ons.household_composition.lone_households_under_65", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 2193915.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f3b1f78e4b752640465521f0" + "resolved_value": 4316000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b2ee6bff131571b7dcd4c33c" } ] }, - "ons.population.female_65_69": { + "ons.household_composition.lone_households_over_65": { "status": "active", "candidates": [ { - "name": "ons.population.female_65_69", + "name": "ons.household_composition.lone_households_over_65", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1838574.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dbeb583b16bcb530ee1296e1" + "resolved_value": 4254000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4178a72ada0e0b5b53fd62b3" } ] }, - "ons.population.female_70_74": { + "ons.household_composition.unrelated_adult_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_70_74", + "name": "ons.household_composition.unrelated_adult_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1622996.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b962c8b6d3d68808831aad6a" + "resolved_value": 813000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_191e954854307c61fca2d539" } ] }, - "ons.population.female_75_79": { + "ons.household_composition.couple_no_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_75_79", + "name": "ons.household_composition.couple_no_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1551183.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_aa0a8a7ab2d3894db7a7d7aa" + "resolved_value": 8119000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_861314257d00193080069624" } ] }, - "ons.population.female_80_84": { + "ons.household_composition.couple_under_3_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_80_84", + "name": "ons.household_composition.couple_under_3_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1024480.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fcdc2e2f119de0b65769ef90" + "resolved_value": 5439000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_04ac3660df720d6f8effbdb2" } ] }, - "ons.population.female_85_89": { + "ons.household_composition.couple_3_plus_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_85_89", + "name": "ons.household_composition.couple_3_plus_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 665267.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c76df00751abbf64b5ab056b" + "resolved_value": 931000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_3432d322cadb6a40f0c3ebc8" } ] }, - "ons.population.female_90_plus": { + "ons.household_composition.couple_non_dependent_children_only_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_90_plus", + "name": "ons.household_composition.couple_non_dependent_children_only_households", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 414716.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_009d5dd487f317483e9d7b3d" + "resolved_value": 1848000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4d36f952f4dd650bcab7ba7f" } ] }, - "ons.population.male_0_4": { + "ons.household_composition.lone_parent_dependent_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.male_0_4", + "name": "ons.household_composition.lone_parent_dependent_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1829801.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ccdfe5dde7b46840510e21d2" + "resolved_value": 1835000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e9746f29548db6f6047842cb" } ] }, - "ons.population.male_10_14": { + "ons.household_composition.lone_parent_non_dependent_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.male_10_14", + "name": "ons.household_composition.lone_parent_non_dependent_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 2152800.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_86d603b352e77fd0c03ddaa8" + "resolved_value": 1204000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_9c7f117f90bc24f073f4e14f" } ] }, - "ons.population.male_15_19": { + "ons.household_composition.multi_family_households": { "status": "active", "candidates": [ { - "name": "ons.population.male_15_19", + "name": "ons.household_composition.multi_family_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 2123750.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ecf390d4b25b71d12aae6bc7" + "resolved_value": 244000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_a0cd8874e5334242ce7b8ce0" } ] }, - "ons.population.male_20_24": { + "voa.council_tax_stock.band_a": { "status": "active", "candidates": [ { - "name": "ons.population.male_20_24", + "name": "voa.council_tax_stock.band_a@E12000001", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 667540.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_3d64b9c8ee0b42435cba72a1" + }, + { + "name": "voa.council_tax_stock.band_a@E12000002", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 1386260.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_ac00f27785b7e0806ac70198" + }, + { + "name": "voa.council_tax_stock.band_a@E12000003", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 1070830.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd338a9f2aabd878385b0c0b" + }, + { + "name": "voa.council_tax_stock.band_a@E12000004", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 804340.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_def10973faec0fe9fa09aa42" + }, + { + "name": "voa.council_tax_stock.band_a@E12000005", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 786010.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_ecf0bb968b9ffa7647f930f8" + }, + { + "name": "voa.council_tax_stock.band_a@E12000006", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 403180.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_cb8a20afb3bc7fba95459372" + }, + { + "name": "voa.council_tax_stock.band_a@E12000007", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 144550.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_09f13c8a14b446d6f6c1c62c" + }, + { + "name": "voa.council_tax_stock.band_a@E12000008", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", + "resolved_period": 2025, + "resolved_value": 367610.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_3291e358aff521b0dab57647" + }, + { + "name": "voa.council_tax_stock.band_a@E12000009", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 2131646.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edb961b3528b22769eece352" + "resolved_value": 473020.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_c13e9668105786f6669a4acd" } ] }, - "ons.population.male_25_29": { + "scotgov.council_tax_stock.band_a": { "status": "active", "candidates": [ { - "name": "ons.population.male_25_29", + "name": "scotgov.council_tax_stock.band_a", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2257360.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd52338de8e1557cdd024c36" + "resolved_value": 498707.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_d16c53fe6a1c8f4f5886b7e5" } ] }, - "ons.population.male_30_34": { + "voa.council_tax_stock.band_b": { "status": "active", "candidates": [ { - "name": "ons.population.male_30_34", + "name": "voa.council_tax_stock.band_b@E12000001", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 2333326.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b81f56fab808ad1d38d70f3d" - } - ] - }, - "ons.population.male_35_39": { - "status": "active", - "candidates": [ + "resolved_value": 206790.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_8955ef23164ec04f5006a161" + }, { - "name": "ons.population.male_35_39", + "name": "voa.council_tax_stock.band_b@E12000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 2303479.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_be9bedc792e0d419ebaf5316" - } - ] - }, - "ons.population.male_40_44": { - "status": "active", - "candidates": [ + "resolved_value": 705450.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_8b3524ef2243749e4cd0784f" + }, { - "name": "ons.population.male_40_44", + "name": "voa.council_tax_stock.band_b@E12000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 2196013.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d41ff91bfe885debcc12d759" - } - ] - }, - "ons.population.male_45_49": { - "status": "active", - "candidates": [ + "resolved_value": 514190.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_b2eaeec372723931bade3b3b" + }, { - "name": "ons.population.male_45_49", + "name": "voa.council_tax_stock.band_b@E12000004", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 2005099.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fafcbae6e55f9ae20bc0050d" - } - ] - }, - "ons.population.male_50_54": { - "status": "active", - "candidates": [ + "resolved_value": 505610.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_c5802e125aec9727ec678f30" + }, { - "name": "ons.population.male_50_54", + "name": "voa.council_tax_stock.band_b@E12000005", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 2164862.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b8fe92cfb43b9a95f8a9f7ef" - } - ] - }, - "ons.population.male_55_59": { - "status": "active", - "candidates": [ + "resolved_value": 654140.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_ddf4c74a73dfb8e143e899e2" + }, { - "name": "ons.population.male_55_59", + "name": "voa.council_tax_stock.band_b@E12000006", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 2256521.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_86b57e4ed1e5186f23dc4021" - } - ] - }, - "ons.population.male_5_9": { - "status": "active", - "candidates": [ + "resolved_value": 598950.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_48d6f0b6906977c144e84bd9" + }, { - "name": "ons.population.male_5_9", + "name": "voa.council_tax_stock.band_b@E12000007", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 2037199.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e272f955c58535b8b9304759" - } - ] - }, - "ons.population.male_60_64": { - "status": "active", - "candidates": [ + "resolved_value": 499130.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_7053c8cbf35cb3022447b31c" + }, { - "name": "ons.population.male_60_64", + "name": "voa.council_tax_stock.band_b@E12000008", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 2094462.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e60d33e33dcbc1ba2292edf5" - } - ] - }, - "ons.population.male_65_69": { - "status": "active", - "candidates": [ + "resolved_value": 687430.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_17295fc2e139d180287c2014" + }, { - "name": "ons.population.male_65_69", + "name": "voa.council_tax_stock.band_b@E12000009", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 1734083.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a4878efd0023575bded6b67a" + "resolved_value": 644890.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_c14843f97601d160be0a9516" } ] }, - "ons.population.male_70_74": { + "scotgov.council_tax_stock.band_b": { "status": "active", "candidates": [ { - "name": "ons.population.male_70_74", + "name": "scotgov.council_tax_stock.band_b", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1473758.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d34aca91f9d1621ea96e72bc" + "resolved_value": 583705.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f95ec98ae61f9898bd47ed9" } ] }, - "ons.population.male_75_79": { + "voa.council_tax_stock.band_c": { "status": "active", "candidates": [ { - "name": "ons.population.male_75_79", + "name": "voa.council_tax_stock.band_c@E12000001", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1350668.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f74158203e735d37a67c5409" - } - ] - }, - "ons.population.male_80_84": { - "status": "active", - "candidates": [ + "resolved_value": 196180.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_b7a6d8a559ed5817e289ab89" + }, { - "name": "ons.population.male_80_84", + "name": "voa.council_tax_stock.band_c@E12000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 815910.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_60aa57af44ada9286df3d649" - } - ] - }, - "ons.population.male_85_89": { - "status": "active", - "candidates": [ + "resolved_value": 616070.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_afec3692548eb58848eb4f74" + }, { - "name": "ons.population.male_85_89", + "name": "voa.council_tax_stock.band_c@E12000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 459511.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bbfd4e781a7d1151855e4edb" - } - ] - }, - "ons.population.male_90_plus": { - "status": "active", - "candidates": [ + "resolved_value": 432290.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_22cfbecd7bd215e7751e349d" + }, + { + "name": "voa.council_tax_stock.band_c@E12000004", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 403840.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_978dcbbd8663990bdcfb461d" + }, + { + "name": "voa.council_tax_stock.band_c@E12000005", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 526260.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_dce3b1093a753675fa284f80" + }, + { + "name": "voa.council_tax_stock.band_c@E12000006", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 739570.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_6c659cd734444cfdd1d651c6" + }, + { + "name": "voa.council_tax_stock.band_c@E12000007", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 1040280.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_fa46132ed0107a360c3a549d" + }, + { + "name": "voa.council_tax_stock.band_c@E12000008", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", + "resolved_period": 2025, + "resolved_value": 1075940.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_bf4a77b8455bb6aea85b760e" + }, { - "name": "ons.population.male_90_plus", + "name": "voa.council_tax_stock.band_c@E12000009", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 210520.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8ec6d2d034546c9693c4f6ed" + "resolved_value": 624030.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_e87540eb97f29cacf120fd3e" } ] }, - "ons.population.scotland_children_under_16": { + "scotgov.council_tax_stock.band_c": { "status": "active", "candidates": [ { - "name": "ons.population.scotland_children_under_16", + "name": "scotgov.council_tax_stock.band_c", "status": "active", - "matched_fact_count_overall": 32, - "matched_fact_count_at_or_before_period": 32, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 896833.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" + "resolved_value": 426388.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_c9781708df55dc5d197e6623" } ] }, - "ons.population.scotland_babies_under_1": { + "voa.council_tax_stock.band_d": { "status": "active", "candidates": [ { - "name": "ons.population.scotland_babies_under_1", + "name": "voa.council_tax_stock.band_d@E12000001", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 46776.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edd043df0081e63ad0876932" - } - ] - }, - "ons.population.scotland_households_3plus_children": { - "status": "signed_excluded", - "candidates": [ + "resolved_value": 113460.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_0b5fcf256d38909389e3b57a" + }, { - "name": "ons.population.scotland_households_3plus_children", - "status": "signed_excluded", - "matched_fact_count_overall": 552, - "matched_fact_count_at_or_before_period": 552, - "signed_rationale": "Signed out pending a Scotland household-composition fact: the current selector reaches person-level ONS mid-year population age rows, not households with three or more children. microcosm#736 tracks the missing declaration." - } - ] - }, - "ons.household_composition.lone_households_under_65": { - "status": "active", - "candidates": [ + "name": "voa.council_tax_stock.band_d@E12000002", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 363970.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_84fe918f408f544492aa90a5" + }, { - "name": "ons.household_composition.lone_households_under_65", + "name": "voa.council_tax_stock.band_d@E12000003", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 4316000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b2ee6bff131571b7dcd4c33c" - } - ] - }, - "ons.household_composition.lone_households_over_65": { - "status": "active", - "candidates": [ + "resolved_value": 249530.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_f5aa30370c6bac96d28ec17c" + }, { - "name": "ons.household_composition.lone_households_over_65", + "name": "voa.council_tax_stock.band_d@E12000004", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 4254000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4178a72ada0e0b5b53fd62b3" - } - ] - }, - "ons.household_composition.unrelated_adult_households": { - "status": "active", - "candidates": [ + "resolved_value": 247850.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_949ba52ffe15cdfd798ce808" + }, { - "name": "ons.household_composition.unrelated_adult_households", + "name": "voa.council_tax_stock.band_d@E12000005", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 813000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_191e954854307c61fca2d539" - } - ] - }, - "ons.household_composition.couple_no_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 302500.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef0247f963abaffbebf59b6c" + }, { - "name": "ons.household_composition.couple_no_children_households", + "name": "voa.council_tax_stock.band_d@E12000006", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 8119000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_861314257d00193080069624" - } - ] - }, - "ons.household_composition.couple_under_3_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 506540.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_b02f55ab569e67c1f7145d29" + }, { - "name": "ons.household_composition.couple_under_3_children_households", + "name": "voa.council_tax_stock.band_d@E12000007", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 5439000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_04ac3660df720d6f8effbdb2" - } - ] - }, - "ons.household_composition.couple_3_plus_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 975750.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_88a75ec79293da0f82a9d3af" + }, { - "name": "ons.household_composition.couple_3_plus_children_households", + "name": "voa.council_tax_stock.band_d@E12000008", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 931000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3432d322cadb6a40f0c3ebc8" - } - ] - }, - "ons.household_composition.couple_non_dependent_children_only_households": { - "status": "active", - "candidates": [ + "resolved_value": 843560.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_58473f911762c6ae3902d2a8" + }, { - "name": "ons.household_composition.couple_non_dependent_children_only_households", + "name": "voa.council_tax_stock.band_d@E12000009", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 1848000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4d36f952f4dd650bcab7ba7f" + "resolved_value": 432070.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_3bcfafa6b488ed08f9c2e9f8" } ] }, - "ons.household_composition.lone_parent_dependent_children_households": { + "scotgov.council_tax_stock.band_d": { "status": "active", "candidates": [ { - "name": "ons.household_composition.lone_parent_dependent_children_households", + "name": "scotgov.council_tax_stock.band_d", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1835000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e9746f29548db6f6047842cb" + "resolved_value": 369621.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_ae1fe03809a505b820479598" } ] }, - "ons.household_composition.lone_parent_non_dependent_children_households": { + "voa.council_tax_stock.band_e": { "status": "active", "candidates": [ { - "name": "ons.household_composition.lone_parent_non_dependent_children_households", + "name": "voa.council_tax_stock.band_e@E12000001", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1204000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_9c7f117f90bc24f073f4e14f" - } - ] - }, - "ons.household_composition.multi_family_households": { - "status": "active", - "candidates": [ + "resolved_value": 61090.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_1e99bd497e2895709dc0f9e1" + }, { - "name": "ons.household_composition.multi_family_households", + "name": "voa.council_tax_stock.band_e@E12000002", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 244000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_a0cd8874e5334242ce7b8ce0" - } - ] - }, - "voa.council_tax_stock.band_a": { - "status": "active", - "candidates": [ + "resolved_value": 216990.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_277ec35c395ecb02939ee720" + }, + { + "name": "voa.council_tax_stock.band_e@E12000003", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 158600.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_debd66d3583f9f1fecd696e2" + }, + { + "name": "voa.council_tax_stock.band_e@E12000004", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 154970.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_4dce9fd786ef519556404c50" + }, + { + "name": "voa.council_tax_stock.band_e@E12000005", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 193700.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_714cfafa915641757589b604" + }, + { + "name": "voa.council_tax_stock.band_e@E12000006", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 313840.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_674cf0835be136cab85f54b8" + }, + { + "name": "voa.council_tax_stock.band_e@E12000007", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 585130.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_15f64c7393430a54f6dfd9a9" + }, { - "name": "voa.council_tax_stock.band_a", + "name": "voa.council_tax_stock.band_e@E12000008", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 6103320.0, + "resolved_value": 551730.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_401f12d7af649e0fd5779ac4" + "resolved_fact_key": "ledger_aggregate_fact_v2_c87704523b66f69de2fd8c5b" + }, + { + "name": "voa.council_tax_stock.band_e@E12000009", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", + "resolved_period": 2025, + "resolved_value": 292090.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_d0ff0b4ce381a7faad755d61" } ] }, - "scotgov.council_tax_stock.band_a": { + "scotgov.council_tax_stock.band_e": { "status": "active", "candidates": [ { - "name": "scotgov.council_tax_stock.band_a", + "name": "scotgov.council_tax_stock.band_e", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 498707.0, + "resolved_value": 366881.0, "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_d16c53fe6a1c8f4f5886b7e5" + "resolved_fact_key": "ledger_aggregate_fact_v2_e83153e0de40fb74471c805f" } ] }, - "voa.council_tax_stock.band_b": { + "voa.council_tax_stock.band_f": { "status": "active", "candidates": [ { - "name": "voa.council_tax_stock.band_b", + "name": "voa.council_tax_stock.band_f@E12000001", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 5016580.0, + "resolved_value": 26600.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_56854712efa30950d408790e" - } - ] - }, - "scotgov.council_tax_stock.band_b": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_212b21ea2b32d2e3d2bd521a" + }, { - "name": "scotgov.council_tax_stock.band_b", + "name": "voa.council_tax_stock.band_f@E12000002", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 583705.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_2f95ec98ae61f9898bd47ed9" - } - ] - }, - "voa.council_tax_stock.band_c": { - "status": "active", - "candidates": [ + "resolved_value": 104330.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_5642442033f8077a90875803" + }, { - "name": "voa.council_tax_stock.band_c", + "name": "voa.council_tax_stock.band_f@E12000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 5654450.0, + "resolved_value": 75690.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc068d151c19fb214f6df036" - } - ] - }, - "scotgov.council_tax_stock.band_c": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_6dacbd8557b665d6ee0740ca" + }, { - "name": "scotgov.council_tax_stock.band_c", + "name": "voa.council_tax_stock.band_f@E12000004", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 426388.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_c9781708df55dc5d197e6623" - } - ] - }, - "voa.council_tax_stock.band_d": { - "status": "active", - "candidates": [ + "resolved_value": 73920.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_712e802adea1d16382695b03" + }, { - "name": "voa.council_tax_stock.band_d", + "name": "voa.council_tax_stock.band_f@E12000005", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 4035220.0, + "resolved_value": 105630.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_0eb041a728d3c583d0687fbd" - } - ] - }, - "scotgov.council_tax_stock.band_d": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_6749abdcd4e56c1884091b82" + }, { - "name": "scotgov.council_tax_stock.band_d", + "name": "voa.council_tax_stock.band_f@E12000006", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 369621.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_ae1fe03809a505b820479598" - } - ] - }, - "voa.council_tax_stock.band_e": { - "status": "active", - "candidates": [ + "resolved_value": 172960.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_8d6432f10bfb6f4b29d4cb36" + }, { - "name": "voa.council_tax_stock.band_e", + "name": "voa.council_tax_stock.band_f@E12000007", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 2528140.0, + "resolved_value": 298920.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_b0fdb6a16964ec71bf031981" - } - ] - }, - "scotgov.council_tax_stock.band_e": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_ab0f7a8926ecd169382ff1dc" + }, { - "name": "scotgov.council_tax_stock.band_e", + "name": "voa.council_tax_stock.band_f@E12000008", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 366881.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_e83153e0de40fb74471c805f" - } - ] - }, - "voa.council_tax_stock.band_f": { - "status": "active", - "candidates": [ + "resolved_value": 337260.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb725155aaa609877ae1e7a9" + }, { - "name": "voa.council_tax_stock.band_f", + "name": "voa.council_tax_stock.band_f@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 1343220.0, + "resolved_value": 147920.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_a99d214f6f55e7f54a423a71" + "resolved_fact_key": "ledger_aggregate_fact_v2_47c47b1375052fc7c190e314" } ] }, @@ -7438,14 +10942,112 @@ "status": "active", "candidates": [ { - "name": "voa.council_tax_stock.band_g", + "name": "voa.council_tax_stock.band_g@E12000001", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 14600.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_98a20120bac3eb106ff70d1e" + }, + { + "name": "voa.council_tax_stock.band_g@E12000002", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 65750.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_3f82b93e0aebf97b2b0a550b" + }, + { + "name": "voa.council_tax_stock.band_g@E12000003", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 42180.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_e522a6efe40eb9186b7e7557" + }, + { + "name": "voa.council_tax_stock.band_g@E12000004", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 39400.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_2a765502b5ba10e73f89a515" + }, + { + "name": "voa.council_tax_stock.band_g@E12000005", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 62780.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_ea2217959cff56b7d2e6bba3" + }, + { + "name": "voa.council_tax_stock.band_g@E12000006", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 113720.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_c63aeb7ddeced2c169b053aa" + }, + { + "name": "voa.council_tax_stock.band_g@E12000007", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 225170.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_477dda108c5db0ff25eb19e9" + }, + { + "name": "voa.council_tax_stock.band_g@E12000008", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", + "resolved_period": 2025, + "resolved_value": 265610.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_60a509a12483e481e3c25d5f" + }, + { + "name": "voa.council_tax_stock.band_g@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 911160.0, + "resolved_value": 81960.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_5d2bfddb2effd2adc195fcb5" + "resolved_fact_key": "ledger_aggregate_fact_v2_2479fbb4c844d88ebb159241" } ] }, @@ -7468,14 +11070,112 @@ "status": "active", "candidates": [ { - "name": "voa.council_tax_stock.band_h", + "name": "voa.council_tax_stock.band_h@E12000001", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 1570.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_3dc74673765985ec461506ca" + }, + { + "name": "voa.council_tax_stock.band_h@E12000002", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 7350.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_e577d7bbb3752de28cdbd97b" + }, + { + "name": "voa.council_tax_stock.band_h@E12000003", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 3770.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef2cc35f77ed4598a04c5526" + }, + { + "name": "voa.council_tax_stock.band_h@E12000004", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 3480.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_0a7428361eb1fdc474980d92" + }, + { + "name": "voa.council_tax_stock.band_h@E12000005", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 6170.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_fbba262d92b5f637e78ab6c0" + }, + { + "name": "voa.council_tax_stock.band_h@E12000006", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 14830.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_59fff7b3db7c983cfc79a50b" + }, + { + "name": "voa.council_tax_stock.band_h@E12000007", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 68500.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_b5b4366ff7c8bb489bf639a0" + }, + { + "name": "voa.council_tax_stock.band_h@E12000008", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", + "resolved_period": 2025, + "resolved_value": 40390.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_1cc7f916cf9be218cf410040" + }, + { + "name": "voa.council_tax_stock.band_h@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 154470.0, + "resolved_value": 8430.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_67f3a58d14df489820a9f9ab" + "resolved_fact_key": "ledger_aggregate_fact_v2_56df761829398cbf0863dbf5" } ] }, @@ -7498,14 +11198,112 @@ "status": "active", "candidates": [ { - "name": "voa.council_tax_stock.total", + "name": "voa.council_tax_stock.total@E12000001", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 1287830.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_d264f11c76d5ad9588b7ebe4" + }, + { + "name": "voa.council_tax_stock.total@E12000002", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 3466140.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_4c0e124f549e52b53393a53d" + }, + { + "name": "voa.council_tax_stock.total@E12000003", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 2547080.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_a853f79f7409dbf0b2e2a85b" + }, + { + "name": "voa.council_tax_stock.total@E12000004", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 2233400.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_2c4835df758e5304e0fd8e5f" + }, + { + "name": "voa.council_tax_stock.total@E12000005", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 2637190.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_4e695a253e47694a97651a10" + }, + { + "name": "voa.council_tax_stock.total@E12000006", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 2863600.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_77119abfc2f7609862d34ade" + }, + { + "name": "voa.council_tax_stock.total@E12000007", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 3837430.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_9dbee719ce6dcd05600cd217" + }, + { + "name": "voa.council_tax_stock.total@E12000008", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", + "resolved_period": 2025, + "resolved_value": 4169520.0, + "resolved_fact_period": "2025-03", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b4504e4d7881843f594af0a" + }, + { + "name": "voa.council_tax_stock.total@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 25746570.0, + "resolved_value": 2704390.0, "resolved_fact_period": "2025-03", - "resolved_fact_key": "ledger_aggregate_fact_v2_a9db0e47afe1d9b6eca42b97" + "resolved_fact_key": "ledger_aggregate_fact_v2_424f337c329feb3a9d11c5f0" } ] }, @@ -8198,8 +11996,14 @@ { "family": "council_tax_stock", "status": "active_declared_rows", - "active_reference_count": 18, - "signed_rationale": "VOA (England and Wales) and Scottish Government CTAXBASE (Scotland) council-tax stock bands are declared as nine explicit target rows each, including total, and each resolves with its country-level geography and band pin." + "active_reference_count": 90, + "signed_rationale": "VOA (England) and Scottish Government CTAXBASE (Scotland) council-tax stock bands are declared as nine explicit target rows each, including total. The Scottish rows resolve with their country-level geography and band pin; the English rows fan out over the nine English regions of the region tier (microcosm#905), each cell resolving VOA's region-stamped band count with the same band pin." + }, + { + "family": "ons_population", + "status": "active_region_tier_fanout", + "active_reference_count": 108, + "signed_rationale": "The nine ONS population-by-age-band targets fan out over the twelve-area region tier (nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level), one reference per area, each scoped on the spine by a household-region predicate and placed at the region grain of the cross-grain rule (microcosm#905). The former single UK-wide row per band is retired: the tier sums to it within the same publication." } ], "signed_exclusion_rationales": [ diff --git a/packages/microcosm-build/src/microcosm/build/uk/target_references.json b/packages/microcosm-build/src/microcosm/build/uk/target_references.json index ed8262d93..5ee020aa1 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -8612,7 +8612,7 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_0_9_by_region", + "name": "ons.population.age_0_9_by_region@E12000001", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", @@ -8631,19 +8631,23 @@ 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000001", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/0_9", + "measure": "ons.population.age_0_9_by_region@E12000001", "family": "ons_population", "period": 2025, "metadata": { "contract_target_id": "ons.population.age_0_9_by_region", - "measure_kind": "prepared_column" + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8651,38 +8655,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_10_19_by_region", + "name": "ons.population.age_0_9_by_region@E12000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000002", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/10_19", + "measure": "ons.population.age_0_9_by_region@E12000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_10_19_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8690,38 +8698,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_20_29_by_region", + "name": "ons.population.age_0_9_by_region@E12000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000003", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/20_29", + "measure": "ons.population.age_0_9_by_region@E12000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_20_29_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8729,38 +8741,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_30_39_by_region", + "name": "ons.population.age_0_9_by_region@E12000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000004", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/30_39", + "measure": "ons.population.age_0_9_by_region@E12000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_30_39_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8768,38 +8784,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_40_49_by_region", + "name": "ons.population.age_0_9_by_region@E12000005", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000005", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/40_49", + "measure": "ons.population.age_0_9_by_region@E12000005", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_40_49_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8807,38 +8827,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_50_59_by_region", + "name": "ons.population.age_0_9_by_region@E12000006", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000006", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/50_59", + "measure": "ons.population.age_0_9_by_region@E12000006", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_50_59_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8846,38 +8870,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_60_69_by_region", + "name": "ons.population.age_0_9_by_region@E12000007", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000007", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/60_69", + "measure": "ons.population.age_0_9_by_region@E12000007", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_60_69_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8885,38 +8913,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_70_79_by_region", + "name": "ons.population.age_0_9_by_region@E12000008", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000008", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/70_79", + "measure": "ons.population.age_0_9_by_region@E12000008", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_70_79_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8924,38 +8956,42 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.age_80_89_by_region", + "name": "ons.population.age_0_9_by_region@E12000009", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000009", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/regional_age/80_89", + "measure": "ons.population.age_0_9_by_region@E12000009", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.age_80_89_by_region", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", "expected_member_count": 10, @@ -8963,838 +8999,1007 @@ "uprating_to_period": 2025 }, { - "name": "ons.population.female_0_4", + "name": "ons.population.age_0_9_by_region@W92000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ 0, 1, 2, 3, - 4 + 4, + 5, + 6, + 7, + 8, + 9 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "W92000004", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_0_4", + "measure": "ons.population.age_0_9_by_region@W92000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_0_4", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_10_14", + "name": "ons.population.age_0_9_by_region@S92000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 10, - 11, - 12, - 13, - 14 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "S92000003", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_10_14", + "measure": "ons.population.age_0_9_by_region@S92000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_10_14", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_15_19", + "name": "ons.population.age_0_9_by_region@N92000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 15, - 16, - 17, - 18, - 19 + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "N92000002", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_15_19", + "measure": "ons.population.age_0_9_by_region@N92000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_15_19", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_0_9_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_20_24", + "name": "ons.population.age_10_19_by_region@E12000001", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 20, - 21, - 22, - 23, - 24 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000001", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_20_24", + "measure": "ons.population.age_10_19_by_region@E12000001", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_20_24", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_25_29", + "name": "ons.population.age_10_19_by_region@E12000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 25, - 26, - 27, - 28, - 29 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000002", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_25_29", + "measure": "ons.population.age_10_19_by_region@E12000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_25_29", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_30_34", + "name": "ons.population.age_10_19_by_region@E12000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 30, - 31, - 32, - 33, - 34 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000003", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_30_34", + "measure": "ons.population.age_10_19_by_region@E12000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_30_34", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_35_39", + "name": "ons.population.age_10_19_by_region@E12000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 35, - 36, - 37, - 38, - 39 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000004", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_35_39", + "measure": "ons.population.age_10_19_by_region@E12000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_35_39", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_40_44", + "name": "ons.population.age_10_19_by_region@E12000005", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 40, - 41, - 42, - 43, - 44 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000005", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_40_44", + "measure": "ons.population.age_10_19_by_region@E12000005", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_40_44", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_45_49", + "name": "ons.population.age_10_19_by_region@E12000006", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 45, - 46, - 47, - 48, - 49 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000006", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_45_49", + "measure": "ons.population.age_10_19_by_region@E12000006", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_45_49", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_50_54", + "name": "ons.population.age_10_19_by_region@E12000007", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 50, - 51, - 52, - 53, - 54 - ] - }, - "geography_level": "country", - "geography_id": "K02000001", - "dimensions": [ - "age", - "sex" - ] + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ] + }, + "geography_level": "region", + "geography_id": "E12000007", + "dimensions": [ + "age" + ] }, "entity": "person", - "measure": "ons/female_50_54", + "measure": "ons.population.age_10_19_by_region@E12000007", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_50_54", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_55_59", + "name": "ons.population.age_10_19_by_region@E12000008", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 55, - 56, - 57, - 58, - 59 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000008", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_55_59", + "measure": "ons.population.age_10_19_by_region@E12000008", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_55_59", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_5_9", + "name": "ons.population.age_10_19_by_region@E12000009", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 5, - 6, - 7, - 8, - 9 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000009", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_5_9", + "measure": "ons.population.age_10_19_by_region@E12000009", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_5_9", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_60_64", + "name": "ons.population.age_10_19_by_region@W92000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 60, - 61, - 62, - 63, - 64 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "W92000004", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_60_64", + "measure": "ons.population.age_10_19_by_region@W92000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_60_64", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_65_69", + "name": "ons.population.age_10_19_by_region@S92000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 65, - 66, - 67, - 68, - 69 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "S92000003", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_65_69", + "measure": "ons.population.age_10_19_by_region@S92000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_65_69", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_70_74", + "name": "ons.population.age_10_19_by_region@N92000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 70, - 71, - 72, - 73, - 74 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "N92000002", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_70_74", + "measure": "ons.population.age_10_19_by_region@N92000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_70_74", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_10_19_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_75_79", + "name": "ons.population.age_20_29_by_region@E12000001", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 75, - 76, - 77, - 78, - 79 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000001", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_75_79", + "measure": "ons.population.age_20_29_by_region@E12000001", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_75_79", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_80_84", + "name": "ons.population.age_20_29_by_region@E12000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 80, - 81, - 82, - 83, - 84 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000002", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_80_84", + "measure": "ons.population.age_20_29_by_region@E12000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_80_84", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_85_89", + "name": "ons.population.age_20_29_by_region@E12000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - 85, - 86, - 87, - 88, - 89 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000003", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_85_89", + "measure": "ons.population.age_20_29_by_region@E12000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_85_89", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.female_90_plus", + "name": "ons.population.age_20_29_by_region@E12000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "female", "age": [ - "90_plus" + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000004", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/female_90_plus", + "measure": "ons.population.age_20_29_by_region@E12000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.female_90_plus", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 1, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_0_4", + "name": "ons.population.age_20_29_by_region@E12000005", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 0, - 1, - 2, - 3, - 4 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000005", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_0_4", + "measure": "ons.population.age_20_29_by_region@E12000005", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_0_4", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_10_14", + "name": "ons.population.age_20_29_by_region@E12000006", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 10, - 11, - 12, - 13, - 14 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000006", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_10_14", + "measure": "ons.population.age_20_29_by_region@E12000006", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_10_14", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_15_19", + "name": "ons.population.age_20_29_by_region@E12000007", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 15, - 16, - 17, - 18, - 19 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000007", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_15_19", + "measure": "ons.population.age_20_29_by_region@E12000007", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_15_19", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_20_24", + "name": "ons.population.age_20_29_by_region@E12000008", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ 20, 21, 22, 23, - 24 + 24, + 25, + 26, + 27, + 28, + 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000008", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_20_24", + "measure": "ons.population.age_20_29_by_region@E12000008", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_20_24", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_25_29", + "name": "ons.population.age_20_29_by_region@E12000009", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ + 20, + 21, + 22, + 23, + 24, 25, 26, 27, @@ -9802,1130 +10007,6910 @@ 29 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000009", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_25_29", + "measure": "ons.population.age_20_29_by_region@E12000009", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_25_29", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_30_34", + "name": "ons.population.age_20_29_by_region@W92000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 30, - 31, - 32, - 33, - 34 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "W92000004", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_30_34", + "measure": "ons.population.age_20_29_by_region@W92000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_30_34", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_35_39", + "name": "ons.population.age_20_29_by_region@S92000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 35, - 36, - 37, - 38, - 39 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "S92000003", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_35_39", + "measure": "ons.population.age_20_29_by_region@S92000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_35_39", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_40_44", + "name": "ons.population.age_20_29_by_region@N92000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 40, - 41, - 42, - 43, - 44 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "N92000002", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_40_44", + "measure": "ons.population.age_20_29_by_region@N92000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_40_44", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_20_29_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_45_49", + "name": "ons.population.age_30_39_by_region@E12000001", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 45, - 46, - 47, - 48, - 49 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000001", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_45_49", + "measure": "ons.population.age_30_39_by_region@E12000001", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_45_49", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_50_54", + "name": "ons.population.age_30_39_by_region@E12000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 50, - 51, - 52, - 53, - 54 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000002", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_50_54", + "measure": "ons.population.age_30_39_by_region@E12000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_50_54", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_55_59", + "name": "ons.population.age_30_39_by_region@E12000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 55, - 56, - 57, - 58, - 59 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000003", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_55_59", + "measure": "ons.population.age_30_39_by_region@E12000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_55_59", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_5_9", + "name": "ons.population.age_30_39_by_region@E12000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 5, - 6, - 7, - 8, - 9 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000004", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_5_9", + "measure": "ons.population.age_30_39_by_region@E12000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_5_9", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_60_64", + "name": "ons.population.age_30_39_by_region@E12000005", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 60, - 61, - 62, - 63, - 64 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000005", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_60_64", + "measure": "ons.population.age_30_39_by_region@E12000005", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_60_64", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_65_69", + "name": "ons.population.age_30_39_by_region@E12000006", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 65, - 66, - 67, - 68, - 69 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000006", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_65_69", + "measure": "ons.population.age_30_39_by_region@E12000006", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_65_69", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_70_74", + "name": "ons.population.age_30_39_by_region@E12000007", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 70, - 71, - 72, - 73, - 74 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000007", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_70_74", + "measure": "ons.population.age_30_39_by_region@E12000007", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_70_74", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_75_79", + "name": "ons.population.age_30_39_by_region@E12000008", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 75, - 76, - 77, - 78, - 79 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000008", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_75_79", + "measure": "ons.population.age_30_39_by_region@E12000008", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_75_79", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_80_84", + "name": "ons.population.age_30_39_by_region@E12000009", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 80, - 81, - 82, - 83, - 84 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, - "geography_level": "country", - "geography_id": "K02000001", + "geography_level": "region", + "geography_id": "E12000009", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_80_84", + "measure": "ons.population.age_30_39_by_region@E12000009", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_80_84", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_85_89", + "name": "ons.population.age_30_39_by_region@W92000004", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - 85, - 86, - 87, - 88, - 89 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "W92000004", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_85_89", + "measure": "ons.population.age_30_39_by_region@W92000004", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_85_89", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 5, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.male_90_plus", + "name": "ons.population.age_30_39_by_region@S92000003", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { - "sex": "male", "age": [ - "90_plus" + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, "geography_level": "country", - "geography_id": "K02000001", + "geography_id": "S92000003", "dimensions": [ - "age", - "sex" + "age" ] }, "entity": "person", - "measure": "ons/male_90_plus", + "measure": "ons.population.age_30_39_by_region@S92000003", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.male_90_plus", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 1, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.scotland_children_under_16", + "name": "ons.population.age_30_39_by_region@N92000002", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ] }, "geography_level": "country", - "geography_id": "S92000003", + "geography_id": "N92000002", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/scotland_children_under_16", + "measure": "ons.population.age_30_39_by_region@N92000002", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.scotland_children_under_16", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_30_39_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 16, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.population.scotland_babies_under_1", + "name": "ons.population.age_40_49_by_region@E12000001", "ledger_selector": { "source_name": "ons", "source_concept": "ons.mid_year_population_estimate", "groupby_dimension": "age", "dimension_values": { "age": [ - 0 + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 ] }, - "geography_level": "country", - "geography_id": "S92000003", + "geography_level": "region", + "geography_id": "E12000001", "dimensions": [ "age" ] }, "entity": "person", - "measure": "ons/scotland_babies_under_1", + "measure": "ons.population.age_40_49_by_region@E12000001", "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.population.scotland_babies_under_1", - "measure_kind": "prepared_column" + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "value_operation": "sum", - "expected_member_count": 1, + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, { - "name": "ons.household_composition.lone_households_under_65", + "name": "ons.population.age_40_49_by_region@E12000002", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "lone_households_under_65" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, - "geography_level": "country", - "geography_id": "K02000001" + "geography_level": "region", + "geography_id": "E12000002", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/lone_households_under_65", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000002", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.lone_households_under_65", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.lone_households_over_65", + "name": "ons.population.age_40_49_by_region@E12000003", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "lone_households_over_65" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, - "geography_level": "country", - "geography_id": "K02000001" + "geography_level": "region", + "geography_id": "E12000003", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/lone_households_over_65", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000003", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.lone_households_over_65", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.unrelated_adult_households", + "name": "ons.population.age_40_49_by_region@E12000004", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "unrelated_adult_households" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, - "geography_level": "country", - "geography_id": "K02000001" + "geography_level": "region", + "geography_id": "E12000004", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/unrelated_adult_households", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000004", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.unrelated_adult_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.couple_no_children_households", + "name": "ons.population.age_40_49_by_region@E12000005", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "couple_no_children_households" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, - "geography_level": "country", - "geography_id": "K02000001" + "geography_level": "region", + "geography_id": "E12000005", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/couple_no_children_households", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000005", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.couple_no_children_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.couple_under_3_children_households", + "name": "ons.population.age_40_49_by_region@E12000006", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "couple_under_3_children_households" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, - "geography_level": "country", - "geography_id": "K02000001" + "geography_level": "region", + "geography_id": "E12000006", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/couple_under_3_children_households", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000006", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.couple_under_3_children_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.couple_3_plus_children_households", + "name": "ons.population.age_40_49_by_region@E12000007", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "couple_3_plus_children_households" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, - "geography_level": "country", - "geography_id": "K02000001" + "geography_level": "region", + "geography_id": "E12000007", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/couple_3_plus_children_households", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000007", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.couple_3_plus_children_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.couple_non_dependent_children_only_households", + "name": "ons.population.age_40_49_by_region@E12000008", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "couple_non_dependent_children_only_households" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, - "geography_level": "country", - "geography_id": "K02000001" + "geography_level": "region", + "geography_id": "E12000008", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/couple_non_dependent_children_only_households", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000008", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.couple_non_dependent_children_only_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.lone_parent_dependent_children_households", + "name": "ons.population.age_40_49_by_region@E12000009", "ledger_selector": { "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", "dimension_values": { - "household_type": "lone_parent_dependent_children_households" + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] + }, + "geography_level": "region", + "geography_id": "E12000009", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_40_49_by_region@E12000009", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_40_49_by_region@W92000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] }, "geography_level": "country", - "geography_id": "K02000001" + "geography_id": "W92000004", + "dimensions": [ + "age" + ] }, - "entity": "household", - "measure": "ons/lone_parent_dependent_children_households", - "family": "ons_household_composition", + "entity": "person", + "measure": "ons.population.age_40_49_by_region@W92000004", + "family": "ons_population", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.lone_parent_dependent_children_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_40_49_by_region@S92000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] + }, + "geography_level": "country", + "geography_id": "S92000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_40_49_by_region@S92000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_40_49_by_region@N92000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] + }, + "geography_level": "country", + "geography_id": "N92000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_40_49_by_region@N92000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_40_49_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000001", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000001", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000001", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000005", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000005", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000005", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000006", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000006", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000006", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000007", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000007", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000007", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000008", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000008", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000008", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@E12000009", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "region", + "geography_id": "E12000009", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@E12000009", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@W92000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "country", + "geography_id": "W92000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@W92000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@S92000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "country", + "geography_id": "S92000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@S92000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_50_59_by_region@N92000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "country", + "geography_id": "N92000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_50_59_by_region@N92000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_50_59_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000001", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000001", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000001", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000005", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000005", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000005", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000006", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000006", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000006", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000007", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000007", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000007", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000008", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000008", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000008", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@E12000009", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "region", + "geography_id": "E12000009", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@E12000009", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@W92000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "country", + "geography_id": "W92000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@W92000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@S92000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "country", + "geography_id": "S92000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@S92000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_60_69_by_region@N92000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "country", + "geography_id": "N92000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_60_69_by_region@N92000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_60_69_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000001", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000001", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000001", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000005", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000005", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000005", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000006", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000006", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000006", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000007", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000007", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000007", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000008", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000008", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000008", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@E12000009", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "region", + "geography_id": "E12000009", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@E12000009", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@W92000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "country", + "geography_id": "W92000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@W92000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@S92000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "country", + "geography_id": "S92000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@S92000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_70_79_by_region@N92000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "country", + "geography_id": "N92000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_70_79_by_region@N92000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_70_79_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000001", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000001", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000001", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000005", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000005", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000005", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000006", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000006", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000006", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000007", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000007", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000007", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000008", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000008", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000008", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@E12000009", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "region", + "geography_id": "E12000009", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@E12000009", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@W92000004", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "country", + "geography_id": "W92000004", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@W92000004", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "W92000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WALES\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@S92000003", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "country", + "geography_id": "S92000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@S92000003", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "S92000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SCOTLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.age_80_89_by_region@N92000002", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "country", + "geography_id": "N92000002", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons.population.age_80_89_by_region@N92000002", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.age_80_89_by_region", + "measure_kind": "prepared_column", + "geography_level": "country", + "geography_id": "N92000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTHERN_IRELAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "value_operation": "sum", + "expected_member_count": 10, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_0_4", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_0_4", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_0_4", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_10_14", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 10, + 11, + 12, + 13, + 14 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_10_14", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_10_14", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_15_19", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 15, + 16, + 17, + 18, + 19 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_15_19", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_15_19", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_20_24", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 20, + 21, + 22, + 23, + 24 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_20_24", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_20_24", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_25_29", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 25, + 26, + 27, + 28, + 29 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_25_29", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_25_29", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_30_34", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 30, + 31, + 32, + 33, + 34 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_30_34", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_30_34", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_35_39", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 35, + 36, + 37, + 38, + 39 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_35_39", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_35_39", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_40_44", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 40, + 41, + 42, + 43, + 44 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_40_44", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_40_44", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_45_49", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 45, + 46, + 47, + 48, + 49 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_45_49", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_45_49", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_50_54", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 50, + 51, + 52, + 53, + 54 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_50_54", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_50_54", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_55_59", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_55_59", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_55_59", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_5_9", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 5, + 6, + 7, + 8, + 9 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_5_9", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_5_9", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_60_64", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 60, + 61, + 62, + 63, + 64 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_60_64", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_60_64", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_65_69", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_65_69", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_65_69", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_70_74", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 70, + 71, + 72, + 73, + 74 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_70_74", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_70_74", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_75_79", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_75_79", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_75_79", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_80_84", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 80, + 81, + 82, + 83, + 84 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_80_84", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_80_84", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_85_89", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_85_89", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_85_89", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.female_90_plus", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "female", + "age": [ + "90_plus" + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/female_90_plus", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.female_90_plus", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 1, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_0_4", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_0_4", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_0_4", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_10_14", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 10, + 11, + 12, + 13, + 14 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_10_14", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_10_14", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_15_19", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 15, + 16, + 17, + 18, + 19 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_15_19", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_15_19", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_20_24", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 20, + 21, + 22, + 23, + 24 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_20_24", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_20_24", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_25_29", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 25, + 26, + 27, + 28, + 29 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_25_29", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_25_29", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_30_34", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 30, + 31, + 32, + 33, + 34 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_30_34", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_30_34", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_35_39", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 35, + 36, + 37, + 38, + 39 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_35_39", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_35_39", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_40_44", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 40, + 41, + 42, + 43, + 44 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_40_44", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_40_44", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_45_49", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 45, + 46, + 47, + 48, + 49 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_45_49", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_45_49", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_50_54", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 50, + 51, + 52, + 53, + 54 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_50_54", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_50_54", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_55_59", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 55, + 56, + 57, + 58, + 59 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_55_59", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_55_59", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_5_9", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 5, + 6, + 7, + 8, + 9 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_5_9", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_5_9", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_60_64", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 60, + 61, + 62, + 63, + 64 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_60_64", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_60_64", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_65_69", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 65, + 66, + 67, + 68, + 69 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_65_69", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_65_69", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_70_74", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 70, + 71, + 72, + 73, + 74 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_70_74", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_70_74", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_75_79", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 75, + 76, + 77, + 78, + 79 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_75_79", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_75_79", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_80_84", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 80, + 81, + 82, + 83, + 84 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_80_84", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_80_84", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_85_89", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + 85, + 86, + 87, + 88, + 89 + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_85_89", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_85_89", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 5, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.male_90_plus", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "sex": "male", + "age": [ + "90_plus" + ] + }, + "geography_level": "country", + "geography_id": "K02000001", + "dimensions": [ + "age", + "sex" + ] + }, + "entity": "person", + "measure": "ons/male_90_plus", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.male_90_plus", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 1, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.scotland_children_under_16", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + }, + "geography_level": "country", + "geography_id": "S92000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons/scotland_children_under_16", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.scotland_children_under_16", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 16, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.population.scotland_babies_under_1", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "groupby_dimension": "age", + "dimension_values": { + "age": [ + 0 + ] + }, + "geography_level": "country", + "geography_id": "S92000003", + "dimensions": [ + "age" + ] + }, + "entity": "person", + "measure": "ons/scotland_babies_under_1", + "family": "ons_population", + "period": 2025, + "metadata": { + "contract_target_id": "ons.population.scotland_babies_under_1", + "measure_kind": "prepared_column" + }, + "value_operation": "sum", + "expected_member_count": 1, + "uprating_from_period": "2024", + "uprating_to_period": 2025 + }, + { + "name": "ons.household_composition.lone_households_under_65", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "lone_households_under_65" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/lone_households_under_65", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.lone_households_under_65", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.lone_households_over_65", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "lone_households_over_65" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/lone_households_over_65", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.lone_households_over_65", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.unrelated_adult_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "unrelated_adult_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/unrelated_adult_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.unrelated_adult_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.couple_no_children_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "couple_no_children_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/couple_no_children_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.couple_no_children_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.couple_under_3_children_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "couple_under_3_children_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/couple_under_3_children_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.couple_under_3_children_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.couple_3_plus_children_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "couple_3_plus_children_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/couple_3_plus_children_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.couple_3_plus_children_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.couple_non_dependent_children_only_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "couple_non_dependent_children_only_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/couple_non_dependent_children_only_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.couple_non_dependent_children_only_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.lone_parent_dependent_children_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "lone_parent_dependent_children_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/lone_parent_dependent_children_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.lone_parent_dependent_children_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.lone_parent_non_dependent_children_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "lone_parent_non_dependent_children_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/lone_parent_non_dependent_children_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.lone_parent_non_dependent_children_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "ons.household_composition.multi_family_households", + "ledger_selector": { + "source_name": "ons", + "source_concept": "ons.families_households_table7", + "groupby_dimension": "ons.household_type", + "dimension_values": { + "household_type": "multi_family_households" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "household", + "measure": "ons/multi_family_households", + "family": "ons_household_composition", + "period": 2025, + "metadata": { + "contract_target_id": "ons.household_composition.multi_family_households", + "measure_kind": "prepared_column" + } + }, + { + "name": "voa.council_tax_stock.band_a@E12000001", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000001", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000002", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000002", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000003", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000003", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000004", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000004", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000005", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000005", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000006", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000006", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000007", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000007", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000008", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000008", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_a@E12000009", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_a", + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_a@E12000009", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_a", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "scotgov.council_tax_stock.band_a", + "ledger_selector": { + "source_name": "scotgov", + "source_measure_id": "band_a", + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "household", + "measure": "voa/council_tax/SCOTLAND/band_a", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "scotgov.council_tax_stock.band_a", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2025-09", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000001", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000001", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000002", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000002", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000003", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000003", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000004", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000004", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000005", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000005", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000006", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000006", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000007", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000007", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000008", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000008", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_b@E12000009", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_b", + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_b@E12000009", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_b", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "scotgov.council_tax_stock.band_b", + "ledger_selector": { + "source_name": "scotgov", + "source_measure_id": "band_b", + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "household", + "measure": "voa/council_tax/SCOTLAND/band_b", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "scotgov.council_tax_stock.band_b", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2025-09", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000001", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000001", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000002", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000002", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000003", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000003", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000004", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000004", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000005", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000005", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000006", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000006", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000007", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000007", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000008", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000008", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_c@E12000009", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_c", + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_c@E12000009", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_c", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "scotgov.council_tax_stock.band_c", + "ledger_selector": { + "source_name": "scotgov", + "source_measure_id": "band_c", + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "household", + "measure": "voa/council_tax/SCOTLAND/band_c", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "scotgov.council_tax_stock.band_c", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2025-09", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000001", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000001", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000002", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000002", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000003", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000003", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000004", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000004", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000005", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000005", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000006", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000006", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000007", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000007", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000008", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000008", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_d@E12000009", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_d", + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_d@E12000009", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_d", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "scotgov.council_tax_stock.band_d", + "ledger_selector": { + "source_name": "scotgov", + "source_measure_id": "band_d", + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "household", + "measure": "voa/council_tax/SCOTLAND/band_d", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "scotgov.council_tax_stock.band_d", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2025-09", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000001", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000001", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000002", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000002", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000003", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000003", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000004", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000004", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000005", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000005", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000006", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000006", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000007", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000007", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000008", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000008", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_e@E12000009", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_e", + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_e@E12000009", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_e", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "scotgov.council_tax_stock.band_e", + "ledger_selector": { + "source_name": "scotgov", + "source_measure_id": "band_e", + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "household", + "measure": "voa/council_tax/SCOTLAND/band_e", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "scotgov.council_tax_stock.band_e", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2025-09", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000001", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000001", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000002", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000002", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000003", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000003", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000004", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000004", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000005", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000005", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000006", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000006", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000007", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000007", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000008", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000008", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_f@E12000009", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_f", + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_f@E12000009", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_f", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "scotgov.council_tax_stock.band_f", + "ledger_selector": { + "source_name": "scotgov", + "source_measure_id": "band_f", + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "household", + "measure": "voa/council_tax/SCOTLAND/band_f", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "scotgov.council_tax_stock.band_f", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2025-09", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000001", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000001", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000002", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000002", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000003", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000003", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000004", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000004", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000005", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000005", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000006", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000006", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000007", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000007", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000008", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000008", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "voa.council_tax_stock.band_g@E12000009", + "ledger_selector": { + "source_name": "voa", + "source_measure_id": "band_g", + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "household", + "measure": "voa.council_tax_stock.band_g@E12000009", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "voa.council_tax_stock.band_g", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 + }, + { + "name": "scotgov.council_tax_stock.band_g", + "ledger_selector": { + "source_name": "scotgov", + "source_measure_id": "band_g", + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "household", + "measure": "voa/council_tax/SCOTLAND/band_g", + "family": "council_tax_stock", + "period": 2025, + "metadata": { + "contract_target_id": "scotgov.council_tax_stock.band_g", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2025-09", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.lone_parent_non_dependent_children_households", + "name": "voa.council_tax_stock.band_h@E12000001", "ledger_selector": { - "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", - "dimension_values": { - "household_type": "lone_parent_non_dependent_children_households" - }, - "geography_level": "country", - "geography_id": "K02000001" + "source_name": "voa", + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000001" }, "entity": "household", - "measure": "ons/lone_parent_non_dependent_children_households", - "family": "ons_household_composition", + "measure": "voa.council_tax_stock.band_h@E12000001", + "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.lone_parent_non_dependent_children_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 }, { - "name": "ons.household_composition.multi_family_households", + "name": "voa.council_tax_stock.band_h@E12000002", "ledger_selector": { - "source_name": "ons", - "source_concept": "ons.families_households_table7", - "groupby_dimension": "ons.household_type", - "dimension_values": { - "household_type": "multi_family_households" - }, - "geography_level": "country", - "geography_id": "K02000001" + "source_name": "voa", + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000002" }, "entity": "household", - "measure": "ons/multi_family_households", - "family": "ons_household_composition", + "measure": "voa.council_tax_stock.band_h@E12000002", + "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "ons.household_composition.multi_family_households", - "measure_kind": "prepared_column" - } + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "uprating_from_period": "2025-03", + "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_a", + "name": "voa.council_tax_stock.band_h@E12000003", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_a", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000003" }, "entity": "household", - "measure": "voa/council_tax/band_a", + "measure": "voa.council_tax_stock.band_h@E12000003", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_a", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_a", + "name": "voa.council_tax_stock.band_h@E12000004", "ledger_selector": { - "source_name": "scotgov", - "source_measure_id": "band_a", - "geography_level": "country", - "geography_id": "S92000003" + "source_name": "voa", + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000004" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_a", + "measure": "voa.council_tax_stock.band_h@E12000004", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_a", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, - "uprating_from_period": "2025-09", + "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_b", + "name": "voa.council_tax_stock.band_h@E12000005", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_b", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000005" }, "entity": "household", - "measure": "voa/council_tax/band_b", + "measure": "voa.council_tax_stock.band_h@E12000005", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_b", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_b", + "name": "voa.council_tax_stock.band_h@E12000006", "ledger_selector": { - "source_name": "scotgov", - "source_measure_id": "band_b", - "geography_level": "country", - "geography_id": "S92000003" + "source_name": "voa", + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000006" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_b", + "measure": "voa.council_tax_stock.band_h@E12000006", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_b", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, - "uprating_from_period": "2025-09", + "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_c", + "name": "voa.council_tax_stock.band_h@E12000007", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_c", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000007" }, "entity": "household", - "measure": "voa/council_tax/band_c", + "measure": "voa.council_tax_stock.band_h@E12000007", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_c", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_c", + "name": "voa.council_tax_stock.band_h@E12000008", "ledger_selector": { - "source_name": "scotgov", - "source_measure_id": "band_c", - "geography_level": "country", - "geography_id": "S92000003" + "source_name": "voa", + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000008" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_c", + "measure": "voa.council_tax_stock.band_h@E12000008", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_c", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, - "uprating_from_period": "2025-09", + "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_d", + "name": "voa.council_tax_stock.band_h@E12000009", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_d", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "band_h", + "geography_level": "region", + "geography_id": "E12000009" }, "entity": "household", - "measure": "voa/council_tax/band_d", + "measure": "voa.council_tax_stock.band_h@E12000009", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_d", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.band_h", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_d", + "name": "scotgov.council_tax_stock.band_h", "ledger_selector": { "source_name": "scotgov", - "source_measure_id": "band_d", + "source_measure_id": "band_h", "geography_level": "country", "geography_id": "S92000003" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_d", + "measure": "voa/council_tax/SCOTLAND/band_h", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_d", + "contract_target_id": "scotgov.council_tax_stock.band_h", "measure_kind": "prepared_column" }, "uprating_from_period": "2025-09", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_e", + "name": "voa.council_tax_stock.total@E12000001", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_e", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000001" }, "entity": "household", - "measure": "voa/council_tax/band_e", + "measure": "voa.council_tax_stock.total@E12000001", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_e", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_e", + "name": "voa.council_tax_stock.total@E12000002", "ledger_selector": { - "source_name": "scotgov", - "source_measure_id": "band_e", - "geography_level": "country", - "geography_id": "S92000003" + "source_name": "voa", + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000002" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_e", + "measure": "voa.council_tax_stock.total@E12000002", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_e", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, - "uprating_from_period": "2025-09", + "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_f", + "name": "voa.council_tax_stock.total@E12000003", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_f", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000003" }, "entity": "household", - "measure": "voa/council_tax/band_f", + "measure": "voa.council_tax_stock.total@E12000003", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_f", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_f", + "name": "voa.council_tax_stock.total@E12000004", "ledger_selector": { - "source_name": "scotgov", - "source_measure_id": "band_f", - "geography_level": "country", - "geography_id": "S92000003" + "source_name": "voa", + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000004" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_f", + "measure": "voa.council_tax_stock.total@E12000004", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_f", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, - "uprating_from_period": "2025-09", + "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_g", + "name": "voa.council_tax_stock.total@E12000005", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_g", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000005" }, "entity": "household", - "measure": "voa/council_tax/band_g", + "measure": "voa.council_tax_stock.total@E12000005", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_g", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_g", + "name": "voa.council_tax_stock.total@E12000006", "ledger_selector": { - "source_name": "scotgov", - "source_measure_id": "band_g", - "geography_level": "country", - "geography_id": "S92000003" + "source_name": "voa", + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000006" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_g", + "measure": "voa.council_tax_stock.total@E12000006", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_g", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, - "uprating_from_period": "2025-09", + "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.band_h", + "name": "voa.council_tax_stock.total@E12000007", "ledger_selector": { "source_name": "voa", - "source_measure_id": "band_h", - "geography_level": "country", - "geography_id": "E92000001" + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000007" }, "entity": "household", - "measure": "voa/council_tax/band_h", + "measure": "voa.council_tax_stock.total@E12000007", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "voa.council_tax_stock.band_h", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "scotgov.council_tax_stock.band_h", + "name": "voa.council_tax_stock.total@E12000008", "ledger_selector": { - "source_name": "scotgov", - "source_measure_id": "band_h", - "geography_level": "country", - "geography_id": "S92000003" + "source_name": "voa", + "source_measure_id": "all_properties", + "geography_level": "region", + "geography_id": "E12000008" }, "entity": "household", - "measure": "voa/council_tax/SCOTLAND/band_h", + "measure": "voa.council_tax_stock.total@E12000008", "family": "council_tax_stock", "period": 2025, "metadata": { - "contract_target_id": "scotgov.council_tax_stock.band_h", - "measure_kind": "prepared_column" + "contract_target_id": "voa.council_tax_stock.total", + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, - "uprating_from_period": "2025-09", + "uprating_from_period": "2025-03", "uprating_to_period": 2025 }, { - "name": "voa.council_tax_stock.total", + "name": "voa.council_tax_stock.total@E12000009", "ledger_selector": { "source_name": "voa", "source_measure_id": "all_properties", - "geography_level": "country", - "geography_id": "E92000001" + "geography_level": "region", + "geography_id": "E12000009" }, "entity": "household", - "measure": "voa/council_tax/total", + "measure": "voa.council_tax_stock.total@E12000009", "family": "council_tax_stock", "period": 2025, "metadata": { "contract_target_id": "voa.council_tax_stock.total", - "measure_kind": "prepared_column" + "measure_kind": "prepared_column", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"household\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" }, "uprating_from_period": "2025-03", "uprating_to_period": 2025 diff --git a/packages/microcosm-build/src/microcosm/build/uk/uk_data_target_parity.json b/packages/microcosm-build/src/microcosm/build/uk/uk_data_target_parity.json index 41e7b4fcb..cb9daa02e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/uk_data_target_parity.json +++ b/packages/microcosm-build/src/microcosm/build/uk/uk_data_target_parity.json @@ -159,19 +159,14 @@ "status": "ported_local_declared" }, { - "classification": "cross_grain_grain_gap", + "classification": "cross_grain_rule", "concern_id": "cross_grain_council_tax_stock_england_region", "covers": [ "policyengine_uk_data.targets.sources.voa_council_tax" ], - "evidence": "Microcosm voa.council_tax_stock.band_* geography_levels include region; CrossGrainRule.grain_precedence is country,constituency,la.", - "fence": { - "origin": "The national contract materializes English VOA stock by region and Wales by country.", - "purpose": "Prevent the LA solve from implicitly choosing between conflicting regional and local stock totals.", - "verdict_basis": "Use exact-signature country reconciliation where a country leg exists; record the England regional leg here until #802 machinery gains an adjudicated region bridge." - }, - "reason": "The incumbent English VOA controls are region-grain, while the #802 rule declares only country > constituency > LA and cannot accept region rows.", - "status": "routed" + "evidence": "voa.council_tax_stock.band_* references voa.council_tax_stock.band_*@E12000001..E12000009; UK_CROSS_GRAIN_RULE declares control_grains (country, region), so the English region rows and the Scottish CTAXBASE country row share the band signature group and each authority takes its nearest covering control (test_uk_ledger_targets::test_voa_region_controls_and_the_scottish_country_control_share_the_surface); parent_geography_legs maps every E12 code to itself; English legs come from the run ladder or the crosswalk's region_code_by_area.", + "reason": "The English VOA stock rows fan out over the nine English regions and sit at the region grain of the cross-grain rule (country > region > constituency > la); each region is its own leg, so the LA solve reconciles to its region's published stock rather than to a single England row (microcosm#905).", + "status": "ported_national" }, { "classification": "cross_grain_grain_gap", diff --git a/packages/microcosm-build/src/microcosm/build/uk/uk_population_targets.json b/packages/microcosm-build/src/microcosm/build/uk/uk_population_targets.json index ee12ca927..6b21581cf 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/uk_population_targets.json +++ b/packages/microcosm-build/src/microcosm/build/uk/uk_population_targets.json @@ -6254,7 +6254,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/0_9", @@ -6326,7 +6326,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/10_19", @@ -6398,7 +6398,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/20_29", @@ -6470,7 +6470,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/30_39", @@ -6542,7 +6542,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/40_49", @@ -6614,7 +6614,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/50_59", @@ -6686,7 +6686,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/60_69", @@ -6758,7 +6758,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/70_79", @@ -6830,7 +6830,7 @@ "value_variable": "person_count", "from_entity": "person", "map_to": "household", - "notes": "One row per geography: English regions resolve at region level, Wales/Scotland/Northern Ireland at country level; the resolved geography binds the model region filter (compute/demographics.py:22-38)." + "notes": "One reference per region-tier area (microcosm#905): the nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level. Each cell is scoped on the spine by the household-region predicate the generator stamps into its reference metadata (geography_predicate), projected to the person entity, and sits at the region grain of the cross-grain rule as the control for its constituencies and authorities." }, "axiom": { "metric_name": "ons/regional_age/80_89", @@ -10277,7 +10277,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_a", @@ -10374,7 +10374,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_b", @@ -10471,7 +10471,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_c", @@ -10568,7 +10568,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_d", @@ -10665,7 +10665,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_e", @@ -10762,7 +10762,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_f", @@ -10859,7 +10859,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_g", @@ -10956,7 +10956,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/band_h", @@ -11028,7 +11028,23 @@ ], "measurement": { "entity": "household", - "concept": "uk.household.count" + "concept": "uk.household.count", + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "operator": "in", + "value": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H" + ] + } + ] }, "bindings": { "policyengine": { @@ -11047,7 +11063,7 @@ } ], "value_variable": "household_count", - "notes": "England dwelling stock proxied by households. National references select E92000001, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." + "notes": "England dwelling stock proxied by households. National references fan out over the nine English regions (microcosm#905), each cell scoped by the household-region predicate in its reference metadata, and this binding explicitly filters country == ENGLAND. Local VOA bands use the separate by_area bindings." }, "axiom": { "metric_name": "voa/council_tax/total", @@ -11070,7 +11086,23 @@ ], "measurement": { "entity": "household", - "concept": "uk.household.count" + "concept": "uk.household.count", + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "operator": "in", + "value": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H" + ] + } + ] }, "bindings": { "policyengine": { diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/__init__.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/__init__.py index 187310e40..b21e0c973 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/__init__.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/__init__.py @@ -161,6 +161,8 @@ assign_uk_geography_ladder, expected_uk_ladder_area_support, load_uk_oa_ladder, + region_tier_by_area, + uk_area_region_codes, uk_geography_ladder_assignment_summary, uk_geography_ladder_gate, uk_region_mix, @@ -873,6 +875,8 @@ "load_scotland_oa_population", "load_scotland_oa_ward_lookup", "load_uk_oa_ladder", + "region_tier_by_area", + "uk_area_region_codes", "local_authority_household_targets", "load_uk_local_target_census", "ladder_target_provenance", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py index 5730b3cb7..2430e187b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py @@ -63,6 +63,7 @@ from microcosm.build.uk_runtime.ledger_targets import ( LOCAL_REGISTRY_PARITY_FIXTURE_RESOURCE, align_uk_local_registry_parity_fixture, + align_uk_national_registry_parity_fixture, ) from microcosm.build.uk_runtime.local_targets import ( load_uk_local_geography_contract, @@ -1256,7 +1257,9 @@ def _load_ledger_compile_parity_fixture(fixture_resource: str) -> dict[str, Any] ) if fixture_resource == LOCAL_REGISTRY_PARITY_FIXTURE_RESOURCE: return align_uk_local_registry_parity_fixture(fixture) - return fixture + # The national fixtures spell the incumbent's regional rows their own way; + # the receipts are signed against the region-tier names (microcosm#905). + return align_uk_national_registry_parity_fixture(fixture) def _ledger_compile_parity_evidence( diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/data_target_parity.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/data_target_parity.py index 878108d23..e7be317fe 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/data_target_parity.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/data_target_parity.py @@ -400,15 +400,10 @@ def _fence(origin: str, purpose: str, verdict_basis: str) -> dict[str, str]: }, { "concern_id": "cross_grain_council_tax_stock_england_region", - "status": "routed", - "classification": "cross_grain_grain_gap", - "reason": "The incumbent English VOA controls are region-grain, while the #802 rule declares only country > constituency > LA and cannot accept region rows.", - "evidence": "Microcosm voa.council_tax_stock.band_* geography_levels include region; CrossGrainRule.grain_precedence is country,constituency,la.", - "fence": _fence( - "The national contract materializes English VOA stock by region and Wales by country.", - "Prevent the LA solve from implicitly choosing between conflicting regional and local stock totals.", - "Use exact-signature country reconciliation where a country leg exists; record the England regional leg here until #802 machinery gains an adjudicated region bridge.", - ), + "status": "ported_national", + "classification": "cross_grain_rule", + "reason": "The English VOA stock rows fan out over the nine English regions and sit at the region grain of the cross-grain rule (country > region > constituency > la); each region is its own leg, so the LA solve reconciles to its region's published stock rather than to a single England row (microcosm#905).", + "evidence": "voa.council_tax_stock.band_* references voa.council_tax_stock.band_*@E12000001..E12000009; UK_CROSS_GRAIN_RULE declares control_grains (country, region), so the English region rows and the Scottish CTAXBASE country row share the band signature group and each authority takes its nearest covering control (test_uk_ledger_targets::test_voa_region_controls_and_the_scottish_country_control_share_the_surface); parent_geography_legs maps every E12 code to itself; English legs come from the run ladder or the crosswalk's region_code_by_area.", }, { "concern_id": "local_council_tax_band_d_rate", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/geography_ladder.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/geography_ladder.py index b5015c4b1..58e26f583 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/geography_ladder.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/geography_ladder.py @@ -88,6 +88,10 @@ from microcosm.build.gates import GateResult from microcosm.build.uk_runtime.rowwise_geography import FRS_REGION_TO_REGION_CODE +from microcosm.calibrate.geography_constants import ( + UK_LADDER_NATION_REGION_CODES, + UK_REGION_TIER, +) #: Derived (lookup-sourced) layers the ladder artifact must carry a vintage #: for. ITL2 and ITL1 are structural prefixes of the ITL3 code and share the @@ -143,6 +147,69 @@ #: collapse to zero is caught the way the US ladder catches an NYC collapse). UK_LONDON_REGION_CODE = "E12000007" + +def region_tier_by_area( + codes: np.ndarray, + regions: np.ndarray, + *, + level: str, +) -> dict[str, str]: + """Map every area id to the one region-tier code its output areas carry. + + The ladder stamps each OA with a region code (``E12`` for England, the + nation pseudo-codes elsewhere). The region tier nests constituencies and + authorities exactly, so an area whose OAs disagree is a ladder defect and + refuses here rather than becoming a cross-grain leg that belongs to two + controls (microcosm#905). + """ + + tier_codes = {code for _, code in UK_REGION_TIER} + region_by_area: dict[str, str] = {} + for area_id, region in zip( + np.asarray(codes).astype(str).tolist(), + np.asarray(regions).astype(str).tolist(), + strict=True, + ): + tier = UK_LADDER_NATION_REGION_CODES.get(region, region) + if tier not in tier_codes: + raise ValueError( + f"UK OA ladder {level} area {area_id!r} carries region code " + f"{region!r}, which is outside the region tier." + ) + previous = region_by_area.setdefault(area_id, tier) + if previous != tier: + raise ValueError( + f"UK OA ladder {level} area {area_id!r} spans region-tier codes " + f"{previous!r} and {tier!r}; the region tier must nest." + ) + return dict(sorted(region_by_area.items())) + + +def uk_area_region_codes(ladder: Any) -> dict[str, str]: + """Constituency and local-authority id -> region-tier code, from a ladder. + + The run's own ladder is the authority for the cross-grain legs of the + areas it assigned; the packaged crosswalk carries the same mapping for + the pinned ladder and is the fallback when no ladder is in hand. + """ + + mapping: dict[str, str] = {} + for level, column in ( + ("constituency", "constituency_code"), + ("local_authority", "local_authority_code"), + ): + for area_id, tier in region_tier_by_area( + getattr(ladder, column), ladder.region_code, level=level + ).items(): + previous = mapping.setdefault(area_id, tier) + if previous != tier: + raise ValueError( + f"UK OA ladder area {area_id!r} maps to both {previous!r} " + f"and {tier!r} across levels." + ) + return mapping + + UK_OA_LADDER_SCHEMA_VERSION = 1 UK_OA_LADDER_KIND = "uk_oa_ladder" @@ -453,10 +520,7 @@ def expected_uk_ladder_area_support( region_households = float(constituency_weight.sum()) for constituency_code, household_count in constituency_weight.items(): expected_rows = ( - n_clones - * int(n_region) - * float(household_count) - / region_households + n_clones * int(n_region) * float(household_count) / region_households ) constituency_key = str(constituency_code) constituency_expected[constituency_key] += expected_rows @@ -504,9 +568,13 @@ def uk_region_mix( """Summarize household row and weight shares by normalized UK region.""" if region_column not in household.columns: - raise ValueError(f"household table must contain region column {region_column!r}.") + raise ValueError( + f"household table must contain region column {region_column!r}." + ) if weight_column not in household.columns: - raise ValueError(f"household table must contain weight column {weight_column!r}.") + raise ValueError( + f"household table must contain weight column {weight_column!r}." + ) region_codes = _household_region_codes( household[region_column], @@ -518,7 +586,9 @@ def uk_region_mix( if not np.isfinite(weights).all() or (weights < 0).any(): raise ValueError(f"{weight_column} must be finite and non-negative.") if len(weights) == 0: - raise ValueError("household table must contain at least one row for region mix.") + raise ValueError( + "household table must contain at least one row for region mix." + ) total_weight = float(weights.sum()) if total_weight <= 0: raise ValueError(f"{weight_column} must carry positive total weight.") diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py index 7f8a368bf..fae284e54 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py @@ -2,12 +2,14 @@ from __future__ import annotations +import functools import json import math -from collections.abc import Iterable, Mapping +from collections.abc import Callable, Iterable, Mapping from dataclasses import dataclass, replace from functools import lru_cache from importlib import resources as importlib_resources +from types import MappingProxyType from typing import Any import numpy as np @@ -39,7 +41,6 @@ from microcosm.build.uk_runtime.local_target_census import family_for_metric from microcosm.build.uk_runtime.local_targets import ( AREA_TYPE_TO_LEDGER_GEOGRAPHY_LEVEL, - area_groups_from_codes, load_uk_local_geography_contract, metric_names, ) @@ -47,6 +48,10 @@ validate_uc_source_month_coverage, ) from microcosm.calibrate import TargetRegistry, TargetSpec +from microcosm.calibrate.geography_constants import ( + UK_REGION_TIER, + UK_REGION_TIER_ENUM, +) from microcosm.frame import Frame @@ -68,20 +73,107 @@ class UKLedgerTargetCompilation: UK_CENSUS_HOUSEHOLDS_TARGET_ID = "ons.census.households" -def _uk_cross_grain_leg_of_area(area_code: str) -> str: - # area_groups_from_codes maps code -> country group, so the single value is - # this code's leg. It refuses an unknown prefix itself; the explicit miss - # below keeps the refusal fail-closed rather than a bare StopIteration if - # that mapping ever returns nothing for a code. - leg = next(iter(area_groups_from_codes((area_code,)).values()), "") - if not leg: - raise ValueError( - f"UK cross-grain area code {area_code!r} maps to no country leg." +#: Every region-tier code is a leg of its own; the national parents cover the +#: tier members they contain (microcosm#905). +UK_REGION_TIER_CODES: tuple[str, ...] = tuple(code for _, code in UK_REGION_TIER) +_UK_ENGLISH_REGION_CODES: tuple[str, ...] = tuple( + code for level, code in UK_REGION_TIER if level == "region" +) +_UK_NATION_LEG_BY_PREFIX = { + "W": "W92000004", + "S": "S92000003", + "N": "N92000002", +} + + +@functools.lru_cache(maxsize=1) +def _uk_crosswalk_region_by_area() -> Mapping[str, str]: + """Area id -> region-tier code from the committed local-area crosswalk. + + Cached for the process (the resolver runs per surface row); a test that + monkeypatches the crosswalk loader clears it with ``cache_clear()``. + """ + + mapping: dict[str, str] = {} + levels = load_uk_local_area_crosswalk().get("levels") or {} + for level, payload in levels.items(): + by_area = payload.get("region_code_by_area") if payload else None + if not isinstance(by_area, Mapping) or not by_area: + raise ValueError( + f"UK local area crosswalk level {level!r} carries no " + "region_code_by_area; regenerate it from the ladder " + "(tools/generate_uk_local_area_crosswalk.py)." + ) + for area_id, region in by_area.items(): + previous = mapping.setdefault(str(area_id), str(region)) + if previous != str(region): + raise ValueError( + f"UK local area crosswalk maps {area_id!r} to both " + f"{previous!r} and {region!r}." + ) + return MappingProxyType(mapping) + + +def uk_cross_grain_leg_of_area( + area_region_codes: Mapping[str, str] | None = None, +) -> Callable[[str], str]: + """Build the leg resolver for one run (microcosm#905). + + A region-tier code is its own leg. A Welsh, Scottish or Northern Irish + area maps to its nation by GSS prefix: the tier does not subdivide the + nations. An English constituency or authority resolves through + ``area_region_codes`` — the run's ladder-derived membership when the + caller has a ladder in hand, otherwise the committed crosswalk's — and an + English code the mapping does not carry refuses rather than falling back + to an ``England`` leg that no control covers. + """ + + def leg_of_area(area_code: str) -> str: + code = str(area_code).strip() + if not code: + raise ValueError("UK cross-grain area code must not be blank.") + if code in UK_REGION_TIER_CODES: + return code + prefix = code[0].upper() + nation = _UK_NATION_LEG_BY_PREFIX.get(prefix) + if nation is not None: + return nation + if prefix != "E": + raise ValueError( + f"Unknown UK area code prefix {prefix!r} for code {code!r}." + ) + mapping = ( + _uk_crosswalk_region_by_area() + if area_region_codes is None + else area_region_codes ) - return leg + region = mapping.get(code) + if region is None: + source = ( + "the local-area crosswalk" + if area_region_codes is None + else "the run's ladder membership" + ) + raise ValueError( + f"UK cross-grain area code {code!r} is not in {source}, so it " + "has no region-tier leg." + ) + return str(region) + + return leg_of_area -UK_CROSS_GRAIN_GRAIN_PRECEDENCE = ("country", "constituency", "la") +#: The committed-crosswalk resolver: the standing rule's default, and the one +#: the leg licences derive from. +_uk_cross_grain_leg_of_area = uk_cross_grain_leg_of_area() + +UK_CROSS_GRAIN_GRAIN_PRECEDENCE = ("country", "region", "constituency", "la") +UK_CROSS_GRAIN_PARENT_GEOGRAPHY_LEGS: dict[str, tuple[str, ...]] = { + **{code: (code,) for code in UK_REGION_TIER_CODES}, + "K02000001": UK_REGION_TIER_CODES, + "K03000001": (*_UK_ENGLISH_REGION_CODES, "W92000004", "S92000003"), + "E92000001": _UK_ENGLISH_REGION_CODES, +} UK_CROSS_GRAIN_BRIDGES = ( CrossGrainBridge( bridge_id="national_household_composition_partition_vs_census_households", @@ -106,11 +198,11 @@ def _uk_cross_grain_leg_of_area(area_code: str) -> str: higher_target_ids=("dwp.uc.households",), lower_side="contract:dwp.uc.households_by_area", ), - # The national ONS controls use inclusive integer-age bands (0--9), while - # local targets use equivalent half-open encodings (0--10), so their - # signatures cannot match directly. These bridges let the K02000001 UK - # control rescale both constituency and local-authority bands over its - # England/Wales/Scotland/Northern Ireland legs. + # The ONS controls use inclusive integer-age bands (0--9), while local + # targets use equivalent half-open encodings (0--10), so their signatures + # cannot match directly. These bridges let the region-tier controls (one + # row per English region and per nation, microcosm#905) rescale both + # constituency and local-authority bands over their twelve legs. CrossGrainBridge( bridge_id="national_age_0_9_vs_local_age_0_10", concept="uk.person.count", @@ -167,17 +259,90 @@ def _uk_cross_grain_leg_of_area(area_code: str) -> str: signature_fields=("concept", "entity", "map_to", "filters"), bridges=UK_CROSS_GRAIN_BRIDGES, leg_of_area=_uk_cross_grain_leg_of_area, - parent_geography_legs={ - "K02000001": ("England", "Wales", "Scotland", "Northern Ireland"), - "K03000001": ("England", "Wales", "Scotland"), - "E92000001": ("England",), - "W92000004": ("Wales",), - "S92000003": ("Scotland",), - "N92000002": ("Northern Ireland",), - }, + parent_geography_legs=UK_CROSS_GRAIN_PARENT_GEOGRAPHY_LEGS, + # Country and region rows control the grains below them. With no + # control-tier row in a group the operator keeps the standing + # single-winner rule, so a local-only family still reconciles authorities + # to constituencies over their legs, as it did before the region tier. + control_grains=("country", "region"), ) +#: The incumbent's regional row spellings: ``ons/_age__`` uses +#: these slugs, ``voa/council_tax//`` the spine's enum names. +_UK_INCUMBENT_REGION_SLUG_CODES: dict[str, str] = { + "north_east": "E12000001", + "north_west": "E12000002", + "yorkshire_and_the_humber": "E12000003", + "east_midlands": "E12000004", + "west_midlands": "E12000005", + "east": "E12000006", + "london": "E12000007", + "south_east": "E12000008", + "south_west": "E12000009", + "wales": "W92000004", + "scotland": "S92000003", + "northern_ireland": "N92000002", +} +_UK_INCUMBENT_REGION_ENUM_CODES: dict[str, str] = { + enum: code for code, enum in UK_REGION_TIER_ENUM.items() +} + + +def align_uk_national_registry_parity_fixture( + fixture: Mapping[str, Any], +) -> dict[str, Any]: + """Align the incumbent's regional rows to the region-tier reference names. + + The incumbent measures ``ons/london_age_0_9`` and + ``voa/council_tax/LONDON/A``; the region tier names the same cells + ``ons.population.age_0_9_by_region@E12000007`` and + ``voa.council_tax_stock.band_a@E12000007`` (microcosm#905). Renaming the + fixture rows lets the compile-parity receipt compare values instead of + recording 189 ``fixture_only`` rows against 189 ``ledger_only`` rows. + Rows that are not regional cells pass through untouched. + """ + + rows: list[dict[str, Any]] = [] + for row in fixture.get("rows", ()): + if not isinstance(row, Mapping): + rows.append(row) + continue + updated = dict(row) + aligned = _uk_region_tier_fixture_name(str(updated.get("name") or "")) + if aligned is not None: + updated["name"] = aligned + updated["measure"] = aligned + updated["contract_target_id"] = aligned.split("@", 1)[0] + rows.append(updated) + result = dict(fixture) + result["rows"] = rows + return result + + +def _uk_region_tier_fixture_name(name: str) -> str | None: + if name.startswith("ons/") and "_age_" in name: + slug, _, band = name.removeprefix("ons/").partition("_age_") + code = _UK_INCUMBENT_REGION_SLUG_CODES.get(slug) + lower, _, upper = band.partition("_") + if code is None or not (lower.isdigit() and upper.isdigit()): + return None + return f"ons.population.age_{lower}_{upper}_by_region@{code}" + if name.startswith("voa/council_tax/"): + parts = name.removeprefix("voa/council_tax/").split("/") + if len(parts) != 2: + return None + region, band = parts + code = _UK_INCUMBENT_REGION_ENUM_CODES.get(region) + if code is None or not code.startswith("E12"): + return None + if band == "total": + return f"voa.council_tax_stock.total@{code}" + if band in tuple("ABCDEFGH"): + return f"voa.council_tax_stock.band_{band.lower()}@{code}" + return None + + def align_uk_local_registry_parity_fixture( fixture: Mapping[str, Any], ) -> dict[str, Any]: @@ -628,8 +793,29 @@ def load_uk_local_target_reference_membership() -> dict[str, Any]: def _uk_licensed_empty_legs_from_membership( membership: Mapping[str, Any], + *, + leg_of_area: Callable[[str], str] | None = None, ) -> dict[str, frozenset[str]]: - """Derive wholly deferred target legs from committed membership rosters.""" + """Derive wholly deferred target legs from committed membership rosters. + + ``leg_of_area`` is the resolver the surface reconciles with, so a licence + is read on the same legs the run assigns; the default is the committed + crosswalk's resolver, the standing rule's own. + """ + + resolve = _uk_cross_grain_leg_of_area if leg_of_area is None else leg_of_area + + def place(area_id: str) -> str | None: + # Under the committed-crosswalk resolver an unplaceable roster area is + # a register defect and refuses. Under a run's own resolver it is an + # area the run's ladder does not carry, so it can sit on no surface + # row and its licence is moot: skip it rather than refuse. + try: + return resolve(area_id) + except ValueError: + if leg_of_area is None: + raise + return None areas_by_level = membership.get("areas_by_geography_level") if not isinstance(areas_by_level, Mapping): @@ -649,7 +835,9 @@ def _uk_licensed_empty_legs_from_membership( "UK local target membership rosters must not contain blank " "area ids." ) - leg = _uk_cross_grain_leg_of_area(area_id) + leg = place(area_id) + if leg is None: + continue roster_by_level_leg.setdefault((str(geography_level), leg), set()).add( area_id ) @@ -677,7 +865,9 @@ def _uk_licensed_empty_legs_from_membership( ) for raw_area_id in raw_area_ids: area_id = str(raw_area_id).strip() - leg = _uk_cross_grain_leg_of_area(area_id) + leg = place(area_id) + if leg is None: + continue roster = roster_by_level_leg.get((geography_level, leg), set()) if area_id not in roster: raise ValueError( @@ -1254,6 +1444,7 @@ def apply_uk_cross_grain_reconciliation( *, reviewed_unbound_higher_targets: Mapping[str, Mapping[str, object]] | None = None, licensed_empty_legs: Mapping[str, frozenset[str]] | None = None, + area_region_codes: Mapping[str, str] | None = None, ) -> tuple[pd.DataFrame, dict[str, Any]]: """Apply the standing UK rule to a bound mixed-grain target surface. @@ -1262,18 +1453,28 @@ def apply_uk_cross_grain_reconciliation( cannot be bypassed. """ + leg_of_area = ( + _uk_cross_grain_leg_of_area + if area_region_codes is None + else uk_cross_grain_leg_of_area(area_region_codes) + ) licences = ( _uk_licensed_empty_legs_from_membership( - load_uk_local_target_reference_membership() + load_uk_local_target_reference_membership(), leg_of_area=leg_of_area ) if licensed_empty_legs is None else licensed_empty_legs ) + rule = ( + UK_CROSS_GRAIN_RULE + if area_region_codes is None + else replace(UK_CROSS_GRAIN_RULE, leg_of_area=leg_of_area) + ) return apply_cross_grain_reconciliation( local_frame, bound_higher_targets, _uk_contract_targets(national_only=False), - UK_CROSS_GRAIN_RULE, + rule, reviewed_unbound_higher_targets=reviewed_unbound_higher_targets, licensed_empty_legs=licences, ) @@ -1580,6 +1781,7 @@ def uk_local_target_surface( reviewed_unbound_higher_targets: Mapping[str, Mapping[str, object]] | None = None, licensed_empty_legs: Mapping[str, frozenset[str]] | None = None, census_household_uprating: Mapping[str, Any] | None = None, + area_region_codes: Mapping[str, str] | None = None, ) -> tuple[pd.DataFrame, dict[str, Any]]: """Assemble and reconcile the present-cell UK local target surface. @@ -1733,9 +1935,22 @@ def uk_local_target_surface( f"UK national target cell {spec.name!r} has non-finite " f"value {value!r}." ) + # A region-tier row declares the grain the cross-grain operator + # places it at (``cross_grain_grain``): Chronicle stamps the + # Welsh, Scottish and Northern Irish population at ``country``, + # but on the surface those rows are the same ITL1 tier as the + # nine English regions and must not outrank them (microcosm#905). + # The selector and ledger metadata keep Chronicle's level. + grain = str(spec.metadata.get("cross_grain_grain") or geography_level) + if grain not in UK_CROSS_GRAIN_GRAIN_PRECEDENCE: + raise ValueError( + f"UK national target cell {spec.name!r} declares " + f"cross_grain_grain {grain!r}, which is not one of " + f"{UK_CROSS_GRAIN_GRAIN_PRECEDENCE}." + ) national_control_groups.setdefault( (contract_target_id, geography_id), [] - ).append((spec.name, geography_level, value)) + ).append((spec.name, grain, value)) else: raise ValueError( f"UK target {spec.name!r} names unsupported geography_level " @@ -1834,6 +2049,7 @@ def uk_local_target_surface( bound_control_ids, reviewed_unbound_higher_targets=reviewed_unbound_higher_targets, licensed_empty_legs=licensed_empty_legs, + area_region_codes=area_region_codes, ) receipt["fanout_targets_not_controls"] = fanout_targets_not_controls diff --git a/packages/microcosm-build/tests/test_country_spec.py b/packages/microcosm-build/tests/test_country_spec.py index f8d60cf45..71693418f 100644 --- a/packages/microcosm-build/tests/test_country_spec.py +++ b/packages/microcosm-build/tests/test_country_spec.py @@ -1095,7 +1095,9 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: spec = load_country_spec("uk") references = {reference.name: reference for reference in spec.target_references} - assert len(references) == 424 + assert ( + len(references) == 595 + ) # microcosm#905: 424 - 18 country rows + 189 region-tier cells assert references["obr.esa"].value_operation == "sum" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/test_cross_grain.py b/packages/microcosm-build/tests/test_cross_grain.py index e822cb7c5..101098849 100644 --- a/packages/microcosm-build/tests/test_cross_grain.py +++ b/packages/microcosm-build/tests/test_cross_grain.py @@ -219,6 +219,8 @@ def test_absence_receipt_exists_when_no_higher_target_is_bound(): "unbound_bridges": [], "empty_legs_licensed": [], "controls_without_lower_rows": [], + "delegated_legs": [], + "absent_middle_tier_legs": [], "absence": "No cross-grain inconsistencies are in force on this surface.", } @@ -840,3 +842,205 @@ def _between(lower: float, upper: float) -> dict[str, object]: assert receipt["groups"] == [] assert receipt["absence"] + + +def _tier_leg(area: str) -> str: + # Region areas name their leg with their first two characters (R1a -> R1); + # nation areas name their nation (Sa -> S). + return area[:2] if area.startswith("R") else area[0] + + +def _tiered_rule() -> CrossGrainRule: + return CrossGrainRule( + grain_precedence=("country", "region", "la"), + signature_fields=("concept", "entity", "map_to", "filters"), + bridges=(), + leg_of_area=_tier_leg, + parent_geography_legs={ + "UK": ("R1", "R2", "S"), + "S": ("S",), + "R1": ("R1",), + "R2": ("R2",), + }, + control_grains=("country", "region"), + ) + + +def _tiered_signatures() -> dict[str, dict[str, object]]: + return { + target_id: _signature() + for target_id in ("national", "regional", "scottish", "local") + } + + +def _pairs(receipt: dict) -> dict[str, dict]: + return { + group["inconsistency_id"].rsplit(":", 1)[1]: group + for group in receipt["groups"] + } + + +def test_control_grains_let_region_and_country_controls_share_one_group(): + """A region row parents its own authorities; a country row the rest.""" + + surface = pd.DataFrame( + [ + ("country", "S", "scottish", 40.0), + ("region", "R1", "regional", 100.0), + ("region", "R2", "regional", 50.0), + ("la", "R1a", "local", 30.0), + ("la", "R1b", "local", 30.0), + ("la", "R2a", "local", 20.0), + ("la", "Sa", "local", 30.0), + ], + columns=["grain", "geography_id", "target_id", "value"], + ) + reconciled, receipt = apply_cross_grain_reconciliation( + surface, ("scottish", "regional"), _tiered_signatures(), _tiered_rule() + ) + assert reconciled["value"].tolist() == pytest.approx( + [40.0, 100.0, 50.0, 50.0, 50.0, 50.0, 40.0] + ) + pairs = _pairs(receipt) + assert set(pairs) == {"country_over_region", "region_over_la", "country_over_la"} + # The Scottish row has no region rows on its leg: not a licence matter, + # it parents the Scottish authority directly. + assert pairs["country_over_region"]["legs"] == [] + assert [e["parent_geography_id"] for e in receipt["absent_middle_tier_legs"]] == [ + "S" + ] + assert [leg["parent_geography_id"] for leg in pairs["region_over_la"]["legs"]] == [ + "R1", + "R2", + ] + assert [leg["parent_geography_id"] for leg in pairs["country_over_la"]["legs"]] == [ + "S" + ] + assert receipt["delegated_legs"] == [] + assert receipt["empty_legs_licensed"] == [] + + +def test_nearest_control_claims_first_and_farther_legs_are_delegated(): + """Under a country row, region rows nest to it and authorities follow + their region; the country row's region legs are delegated, never + rescaled twice.""" + + surface = pd.DataFrame( + [ + ("country", "UK", "national", 200.0), + ("region", "R1", "regional", 60.0), + ("region", "R2", "regional", 40.0), + ("la", "R1a", "local", 10.0), + ("la", "R2a", "local", 10.0), + ], + columns=["grain", "geography_id", "target_id", "value"], + ) + reconciled, receipt = apply_cross_grain_reconciliation( + surface, + ("national", "regional"), + _tiered_signatures(), + _tiered_rule(), + licensed_empty_legs={"local": frozenset({"S"})}, + ) + # Region rows rescale jointly to the UK row (100 -> 200); authorities + # follow their reconciled region. + assert reconciled["value"].tolist() == pytest.approx( + [200.0, 120.0, 80.0, 120.0, 80.0] + ) + pairs = _pairs(receipt) + assert [ + leg["parent_geography_id"] for leg in pairs["country_over_region"]["legs"] + ] == ["UK"] + assert [leg["parent_geography_id"] for leg in pairs["region_over_la"]["legs"]] == [ + "R1", + "R2", + ] + assert pairs["country_over_la"]["legs"] == [] + assert [ + (e["parent_geography_id"], e["legs"]) for e in receipt["delegated_legs"] + ] == [("UK", ["R1", "R2"])] + + +def test_a_control_split_between_delegated_and_live_legs_is_refused(): + surface = pd.DataFrame( + [ + ("country", "UK", "national", 200.0), + ("region", "R1", "regional", 60.0), + ("la", "R1a", "local", 10.0), + ("la", "Sa", "local", 10.0), + ], + columns=["grain", "geography_id", "target_id", "value"], + ) + with pytest.raises(ValueError, match="cannot be split across tiers"): + apply_cross_grain_reconciliation( + surface, ("national", "regional"), _tiered_signatures(), _tiered_rule() + ) + + +def test_unbound_middle_tier_rows_are_not_controls(): + surface = pd.DataFrame( + [ + ("country", "UK", "national", 200.0), + ("region", "R1", "regional", 60.0), + ("la", "R1a", "local", 10.0), + ], + columns=["grain", "geography_id", "target_id", "value"], + ) + reconciled, receipt = apply_cross_grain_reconciliation( + surface, + ("national",), + _tiered_signatures(), + _tiered_rule(), + licensed_empty_legs={"local": frozenset({"R2", "S"})}, + ) + # The unbound region row is out of play: the authority reconciles to the + # UK row and the region row is untouched. + assert reconciled["value"].tolist() == pytest.approx([200.0, 60.0, 200.0]) + assert {g["winning_grain"] for g in receipt["groups"]} == {"country"} + + +def test_leaf_rows_without_any_covering_control_still_refuse(): + surface = pd.DataFrame( + [ + ("region", "R1", "regional", 60.0), + ("la", "R1a", "local", 10.0), + ("la", "Sa", "local", 10.0), + ], + columns=["grain", "geography_id", "target_id", "value"], + ) + with pytest.raises(ValueError, match="unparented lower-grain leg"): + apply_cross_grain_reconciliation( + surface, ("regional",), _tiered_signatures(), _tiered_rule() + ) + + +def test_control_grains_declaration_is_validated(): + empty = pd.DataFrame(columns=["grain", "geography_id", "target_id", "value"]) + with pytest.raises(ValueError, match="not in grain_precedence"): + apply_cross_grain_reconciliation( + empty, + (), + {}, + CrossGrainRule( + grain_precedence=("country", "la"), + signature_fields=("concept",), + bridges=(), + leg_of_area=_tier_leg, + parent_geography_legs={}, + control_grains=("country", "region"), + ), + ) + with pytest.raises(ValueError, match="must include the top grain"): + apply_cross_grain_reconciliation( + empty, + (), + {}, + CrossGrainRule( + grain_precedence=("country", "region", "la"), + signature_fields=("concept",), + bridges=(), + leg_of_area=_tier_leg, + parent_geography_legs={}, + control_grains=("region",), + ), + ) diff --git a/packages/microcosm-build/tests/test_target_materialization.py b/packages/microcosm-build/tests/test_target_materialization.py index 4c81e6173..f730d2d10 100644 --- a/packages/microcosm-build/tests/test_target_materialization.py +++ b/packages/microcosm-build/tests/test_target_materialization.py @@ -1,3 +1,5 @@ +import json + import numpy as np import pandas as pd import pytest @@ -1071,3 +1073,130 @@ def test_declared_band_filter_dimension_breaks_the_tie(): assert result.skipped == () assert list(adapter.tables["person"]["income_band_0"]) == [1.0, 0.0, 0.0] assert list(adapter.tables["person"]["income_band_20"]) == [0.0, 1.0, 1.0] + + +def _geography_predicate_registry(predicate: str | None) -> TargetRegistry: + metadata = {"contract_target_id": "adult_income"} + if predicate is not None: + metadata["geography_predicate"] = predicate + return TargetRegistry( + [ + TargetSpec( + name="adult_income@LONDON", + entity="person", + measure="adult_income@LONDON", + value=50.0, + source="test", + metadata=metadata, + ) + ], + country="uk", + ) + + +_ADULT_INCOME_CONTRACT = { + "adult_income": { + "bindings": { + "policyengine": { + "value_variable": "income", + "filters": [{"variable": "age", "operator": ">=", "value": 18}], + } + } + } +} + + +def test_geography_predicate_scopes_a_shared_binding_to_one_reference(): + adapter = StubAdapter() + adapter.tables["person"]["region"] = np.array(["LONDON", "LONDON", "WALES"]) + registry = _geography_predicate_registry( + json.dumps({"variable": "region", "operator": "==", "value": "LONDON"}) + ) + result = materialize_target_bindings( + adapter, registry, _ADULT_INCOME_CONTRACT, period=2025 + ) + assert result.skipped == () + # The contract's age filter still applies; the predicate removes the + # Welsh adult, and nothing in the contract itself changed. + assert adapter.tables["person"]["adult_income@LONDON"].tolist() == [ + 0.0, + 20.0, + 0.0, + ] + assert _ADULT_INCOME_CONTRACT["adult_income"]["bindings"]["policyengine"][ + "filters" + ] == [{"variable": "age", "operator": ">=", "value": 18}] + + +def test_reference_without_geography_predicate_is_untouched(): + adapter = StubAdapter() + registry = _geography_predicate_registry(None) + result = materialize_target_bindings( + adapter, registry, _ADULT_INCOME_CONTRACT, period=2025 + ) + assert result.skipped == () + assert adapter.tables["person"]["adult_income@LONDON"].tolist() == [ + 0.0, + 20.0, + 30.0, + ] + + +@pytest.mark.parametrize( + "predicate, message", + [ + ("{not json", "not valid JSON"), + (json.dumps(["region"]), "must be a predicate object"), + (json.dumps({"operator": "==", "value": "LONDON"}), "naming a variable"), + ], +) +def test_malformed_geography_predicate_refuses_materialization(predicate, message): + adapter = StubAdapter() + registry = _geography_predicate_registry(predicate) + with pytest.raises(ValueError, match=message): + materialize_target_bindings( + adapter, registry, _ADULT_INCOME_CONTRACT, period=2025 + ) + + +def test_geography_predicate_refuses_provider_bindings(): + adapter = StubAdapter() + registry = _geography_predicate_registry( + json.dumps({"variable": "region", "operator": "==", "value": "LONDON"}) + ) + contract = { + "adult_income": { + "bindings": { + "policyengine": { + "kind": "input_substitution_counterfactual", + "zeroed_input": "salary_sacrifice", + "output_variable": "baseline_tax", + } + } + } + } + with pytest.raises(ValueError, match="cannot scope a provider binding"): + materialize_target_bindings(adapter, registry, contract, period=2025) + + +def test_geography_predicate_must_project_to_the_reference_entity(): + adapter = StubAdapter() + adapter.tables["person"]["region"] = np.array(["LONDON", "LONDON", "WALES"]) + registry = _geography_predicate_registry( + json.dumps( + { + "entity": "household", + "variable": "region", + "operator": "==", + "value": "LONDON", + "reduce": "any", + "map_to": "household", + } + ) + ) + # The reference measures persons; a predicate projected to households + # would produce a mask of the wrong length, so it refuses up front. + with pytest.raises(ValueError, match="projects to 'household'"): + materialize_target_bindings( + adapter, registry, _ADULT_INCOME_CONTRACT, period=2025 + ) diff --git a/packages/microcosm-build/tests/test_target_reference_authoring.py b/packages/microcosm-build/tests/test_target_reference_authoring.py index a19006dc3..15cc9a682 100644 --- a/packages/microcosm-build/tests/test_target_reference_authoring.py +++ b/packages/microcosm-build/tests/test_target_reference_authoring.py @@ -10,7 +10,9 @@ from microcosm.build.target_reference_authoring import ( AreaSignedDeferral, AreaTargetReferenceAuthoringConfig, + TargetReferenceAuthoringConfig, author_area_target_references, + author_target_references, target_references_resource, ) @@ -584,3 +586,159 @@ def _area_fact( "measure_id": measure_id, }, } + + +_REGION_TIER_CELLS = ( + ("region", "E12000007"), + ("region", "E12000001"), + ("country", "W92000004"), +) + + +def _tier_fact(level: str, area_id: str, value: float, fact_key: str) -> dict: + fact = _area_fact("ons", "population", value, area_id=area_id, fact_key=fact_key) + fact["geography"] = {"level": level, "id": area_id, "vintage": "gss_2024"} + return fact + + +def _two_level_contract() -> dict: + contract = _single_age_contract() + target = contract["targets"][0] + target["target_id"] = "ons.age.0_10_by_region" + target["geography_levels"] = ["country", "region"] + return contract + + +def _tier_metadata( + target: dict, geography_level: str, geography_id: str, entity: str +) -> dict[str, str]: + del target, geography_level + return { + "geography_predicate": json.dumps( + { + "variable": "region", + "operator": "==", + "value": geography_id, + "map_to": entity, + } + ), + "cross_grain_grain": "region", + } + + +def _tier_facts() -> list[dict]: + return [ + _tier_fact("region", "E12000007", 10.0, "london"), + _tier_fact("region", "E12000001", 20.0, "north-east"), + _tier_fact("country", "W92000004", 30.0, "wales"), + _tier_fact("country", "K02000001", 60.0, "uk"), + ] + + +def test_author_target_references_fans_out_over_a_geography_roster() -> None: + config = TargetReferenceAuthoringConfig( + target_period=2025, + geography_fanout_by_target_id={"ons.age.0_10_by_region": _REGION_TIER_CELLS}, + geography_fanout_metadata=_tier_metadata, + source_fact_feed="synthetic", + ) + authored = author_target_references(_two_level_contract(), _tier_facts(), config) + names = [row["name"] for row in authored.references] + assert names == [ + "ons.age.0_10_by_region@E12000007", + "ons.age.0_10_by_region@E12000001", + "ons.age.0_10_by_region@W92000004", + ] + london = authored.references[0] + # Each cell is its own measure column, never the shared metric name. + assert london["measure"] == london["name"] + assert london["entity"] == "person" + assert london["ledger_selector"]["geography_level"] == "region" + assert london["ledger_selector"]["geography_id"] == "E12000007" + assert london["metadata"]["contract_target_id"] == "ons.age.0_10_by_region" + assert london["metadata"]["geography_level"] == "region" + assert london["metadata"]["geography_id"] == "E12000007" + assert json.loads(london["metadata"]["geography_predicate"]) == { + "variable": "region", + "operator": "==", + "value": "E12000007", + "map_to": "person", + } + assert london["metadata"]["cross_grain_grain"] == "region" + wales = authored.references[2] + assert wales["ledger_selector"]["geography_level"] == "country" + # The UK-wide fact is no cell of the roster: nothing binds it. + assert "K02000001" not in json.dumps(authored.references) + + report = authored.membership_report + assert report["active_reference_count"] == 3 + assert report["status_counts"] == {"active": 3} + assert report["geography_pins"]["ons.age.0_10_by_region"] == { + "geography_fanout": [ + {"geography_level": level, "geography_id": area_id} + for level, area_id in _REGION_TIER_CELLS + ] + } + candidates = report["targets"]["ons.age.0_10_by_region"]["candidates"] + assert [ + ( + entry["geography_level"], + entry["geography_id"], + entry["status"], + entry["resolved_value"], + ) + for entry in candidates + ] == [ + ("region", "E12000007", "active", 10.0), + ("region", "E12000001", "active", 20.0), + ("country", "W92000004", "active", 30.0), + ] + + +def test_geography_fanout_refuses_an_absent_roster_cell() -> None: + config = TargetReferenceAuthoringConfig( + target_period=2025, + geography_fanout_by_target_id={"ons.age.0_10_by_region": _REGION_TIER_CELLS}, + source_fact_feed="synthetic", + ) + facts = [fact for fact in _tier_facts() if fact["geography"]["id"] != "W92000004"] + with pytest.raises(ValueError, match="Unsigned geography fan-out absence") as info: + author_target_references(_two_level_contract(), facts, config) + assert "W92000004" in str(info.value) + + +def test_geography_fanout_refuses_a_pin_on_the_same_target() -> None: + config = TargetReferenceAuthoringConfig( + target_period=2025, + geography_pins={ + "ons.age.0_10_by_region": { + "geography_level": "country", + "geography_id": "K02000001", + } + }, + geography_fanout_by_target_id={"ons.age.0_10_by_region": _REGION_TIER_CELLS}, + source_fact_feed="synthetic", + ) + with pytest.raises(ValueError, match="both a geography pin"): + author_target_references(_two_level_contract(), _tier_facts(), config) + + +def test_geography_fanout_refuses_duplicate_cells_and_non_string_metadata() -> None: + duplicated = TargetReferenceAuthoringConfig( + target_period=2025, + geography_fanout_by_target_id={ + "ons.age.0_10_by_region": (("region", "E12000007"), ("region", "E12000007")) + }, + source_fact_feed="synthetic", + ) + with pytest.raises(ValueError, match="twice"): + author_target_references(_two_level_contract(), _tier_facts(), duplicated) + + non_string = TargetReferenceAuthoringConfig( + target_period=2025, + geography_fanout_by_target_id={"ons.age.0_10_by_region": _REGION_TIER_CELLS}, + geography_fanout_metadata=lambda *args: {"cross_grain_grain": 1}, + source_fact_feed="synthetic", + ) + with pytest.raises(ValueError, match="must be a string"): + author_target_references(_two_level_contract(), _tier_facts(), non_string) diff --git a/packages/microcosm-build/tests/test_uk_council_tax_targets.py b/packages/microcosm-build/tests/test_uk_council_tax_targets.py index e150eec93..d578bfbee 100644 --- a/packages/microcosm-build/tests/test_uk_council_tax_targets.py +++ b/packages/microcosm-build/tests/test_uk_council_tax_targets.py @@ -15,6 +15,7 @@ ) from microcosm.build.uk_runtime.local_targets import load_uk_population_contract from microcosm.calibrate import TargetRegistry, TargetSpec +from microcosm.calibrate.geography_constants import UK_REGION_TIER_ENUM from microcosm.calibrate.matrix import build_constraint_matrix from microcosm.frame import EntitySchema, Frame, WeightKind, Weights from tools.generate_uk_local_target_references import _area_signed_deferrals @@ -36,15 +37,9 @@ def _membership() -> dict: ) -def test_national_voa_matrix_counts_only_england_for_every_band_and_total() -> None: - """The E92000001 fact must not absorb Wales/Scotland/NI household mass.""" - rows = [ - (country, band) - for country in ("ENGLAND", "WALES", "SCOTLAND", "NORTHERN_IRELAND") - for band in "ABCDEFGH" - ] +def _region_frame(rows: list[tuple[str, str, str]]) -> Frame: ids = np.arange(len(rows), dtype="int64") - frame = Frame( + return Frame( { "person": pd.DataFrame( {"person_id": ids, "person_benunit_id": ids, "person_household_id": ids} @@ -53,8 +48,9 @@ def test_national_voa_matrix_counts_only_england_for_every_band_and_total() -> N "household": pd.DataFrame( { "household_id": ids, - "country": [x[0] for x in rows], - "council_tax_band": [x[1] for x in rows], + "country": [row[0] for row in rows], + "region": [row[1] for row in rows], + "council_tax_band": [row[2] for row in rows], "household_num_benunits": np.ones(len(rows)), } ), @@ -62,13 +58,14 @@ def test_national_voa_matrix_counts_only_england_for_every_band_and_total() -> N EntitySchema(group_entities=("benunit", "household")), {"household": Weights(np.ones(len(rows)), WeightKind.DESIGN)}, ) + + +def _registry_for(prefix: str) -> tuple[list, TargetRegistry]: refs = [ r for r in load_country_spec("uk").target_references - if r.name.startswith("voa.council_tax_stock.") + if r.name.startswith(prefix) ] - assert len(refs) == 9 - assert all(r.ledger_selector["geography_id"] == "E92000001" for r in refs) registry = TargetRegistry( [ TargetSpec( @@ -84,7 +81,33 @@ def test_national_voa_matrix_counts_only_england_for_every_band_and_total() -> N ], country="uk", ) - adapter = UKFrameTargetAdapter(frame) + return refs, registry + + +def test_national_voa_matrix_counts_only_its_region_for_every_band_and_total() -> None: + """Each region cell must count only that region's English band households. + + The English VOA stock fans out over the nine English regions + (microcosm#905); a Welsh, Scottish or Northern Irish household never + enters any cell, and a Londoner never enters the North East's. + """ + + areas = ( + ("ENGLAND", "NORTH_EAST"), + ("ENGLAND", "LONDON"), + ("ENGLAND", "SOUTH_EAST"), + ("WALES", "WALES"), + ("SCOTLAND", "SCOTLAND"), + ("NORTHERN_IRELAND", "NORTHERN_IRELAND"), + ) + rows = [(country, region, band) for country, region in areas for band in "ABCDEFGH"] + refs, registry = _registry_for("voa.council_tax_stock.") + assert len(refs) == 81 + assert {r.ledger_selector["geography_level"] for r in refs} == {"region"} + assert sorted({r.ledger_selector["geography_id"] for r in refs}) == [ + f"E1200000{index}" for index in range(1, 10) + ] + adapter = UKFrameTargetAdapter(_region_frame(rows)) result = materialize_uk_ledger_targets( adapter, registry, period=2025, band_edge_registry=registry ) @@ -93,17 +116,69 @@ def test_national_voa_matrix_counts_only_england_for_every_band_and_total() -> N adapter.to_frame(), registry.to_target_set(), weight_entity="household" ) for name, values in zip(problem.names, problem.matrix.toarray(), strict=True): + target_id, code = name.split("@")[:2] band = ( - name.split("@")[0].rsplit("band_", 1)[-1].upper() - if "band_" in name - else None + target_id.rsplit("band_", 1)[-1].upper() if "band_" in target_id else None ) + region = UK_REGION_TIER_ENUM[code] expected = [ - country == "ENGLAND" and (band is None or b == band) for country, b in rows + country == "ENGLAND" and r == region and (band is None or b == band) + for country, r, b in rows ] np.testing.assert_array_equal(values, expected, err_msg=name) +def test_national_ons_region_cells_count_only_their_region_at_person_grain() -> None: + """The region predicate is a household fact projected to each person.""" + + household_ids = np.arange(3, dtype="int64") + person_ids = np.arange(4, dtype="int64") + frame = Frame( + { + "person": pd.DataFrame( + { + "person_id": person_ids, + "person_benunit_id": np.array([0, 0, 1, 2], dtype="int64"), + "person_household_id": np.array([0, 0, 1, 2], dtype="int64"), + "age": np.array([5.0, 40.0, 7.0, 3.0]), + } + ), + "benunit": pd.DataFrame({"benunit_id": household_ids}), + "household": pd.DataFrame( + { + "household_id": household_ids, + "region": ["LONDON", "WALES", "SCOTLAND"], + "household_num_benunits": np.ones(3), + } + ), + }, + EntitySchema(group_entities=("benunit", "household")), + {"household": Weights(np.ones(3), WeightKind.DESIGN)}, + ) + refs, registry = _registry_for("ons.population.age_0_9_by_region@") + assert len(refs) == 12 + adapter = UKFrameTargetAdapter(frame) + result = materialize_uk_ledger_targets( + adapter, registry, period=2025, band_edge_registry=registry + ) + assert not result.skipped + problem = build_constraint_matrix( + adapter.to_frame(), registry.to_target_set(), weight_entity="household" + ) + # Matrix names carry the target period as a third "@" segment. + by_name = { + "@".join(name.split("@")[:2]): values + for name, values in zip(problem.names, problem.matrix.toarray(), strict=True) + } + prefix = "ons.population.age_0_9_by_region@" + # London: one child under ten; the 40-year-old is outside the band. + assert by_name[f"{prefix}E12000007"].tolist() == [1.0, 0.0, 0.0] + assert by_name[f"{prefix}W92000004"].tolist() == [0.0, 1.0, 0.0] + assert by_name[f"{prefix}S92000003"].tolist() == [0.0, 0.0, 1.0] + assert by_name[f"{prefix}N92000002"].tolist() == [0.0, 0.0, 0.0] + assert by_name[f"{prefix}E12000001"].tolist() == [0.0, 0.0, 0.0] + + def test_council_tax_band_cells_activate_and_defer_as_measured() -> None: membership = _membership() expected_active = { diff --git a/packages/microcosm-build/tests/test_uk_geography_ladder.py b/packages/microcosm-build/tests/test_uk_geography_ladder.py index 5131be258..7fdbd3e8f 100644 --- a/packages/microcosm-build/tests/test_uk_geography_ladder.py +++ b/packages/microcosm-build/tests/test_uk_geography_ladder.py @@ -280,9 +280,7 @@ def test_expected_support_matches_hand_computed_two_stage_result(tmp_path) -> No ), ) ) - household = pd.DataFrame( - {"household_id": [1, 2], "region": ["LONDON", "London"]} - ) + household = pd.DataFrame({"household_id": [1, 2], "region": ["LONDON", "London"]}) support = expected_uk_ladder_area_support(household, ladder, n_clones=2) @@ -664,3 +662,79 @@ def test_join_raises_on_unmatched_lad_itl() -> None: oa_ward=_oa_ward(), lad_itl=lad_itl, ) + + +def test_region_tier_roster_and_enum_table_are_consistent() -> None: + from microcosm.build.uk_runtime.frs_spine import REGION_MAP + from microcosm.build.uk_runtime.geography_ladder import ( + UK_ENGLAND_WALES_REGION_CODES, + ) + from microcosm.calibrate.geography_constants import ( + UK_GEOGRAPHY_ID_TO_LABEL, + UK_LADDER_NATION_REGION_CODES, + UK_REGION_TIER, + UK_REGION_TIER_ENUM, + ) + + codes = [code for _, code in UK_REGION_TIER] + assert len(codes) == 12 == len(set(codes)) + # Every tier code is a catalogued geography, so the schema-8 hierarchy can + # label a region-tier cell without a Chronicle geography.name. + assert set(codes) <= set(UK_GEOGRAPHY_ID_TO_LABEL) + assert [code for level, code in UK_REGION_TIER if level == "region"] == [ + code for code in UK_ENGLAND_WALES_REGION_CODES if code.startswith("E12") + ] + assert [code for level, code in UK_REGION_TIER if level == "country"] == [ + "W92000004", + "S92000003", + "N92000002", + ] + # Every spine region enum has exactly one tier code, and every tier code + # names a spine region: the predicate a fan-out row carries can never name + # a region the frame does not carry. + assert set(UK_REGION_TIER_ENUM) == set(codes) + assert sorted(UK_REGION_TIER_ENUM.values()) == sorted(REGION_MAP.values()) + assert len(set(UK_REGION_TIER_ENUM.values())) == 12 + assert set(UK_LADDER_NATION_REGION_CODES.values()) == { + "W92000004", + "S92000003", + "N92000002", + } + + +def test_uk_area_region_codes_reads_the_ladder_in_hand() -> None: + from types import SimpleNamespace + + from microcosm.build.uk_runtime.geography_ladder import uk_area_region_codes + + ladder = SimpleNamespace( + constituency_code=np.array( + ["E14000001", "E14000001", "W07000041", "S14000001"] + ), + local_authority_code=np.array( + ["E09000001", "E09000001", "W06000001", "S12000033"] + ), + region_code=np.array(["E12000007", "E12000007", "W99999999", "S99999999"]), + ) + assert uk_area_region_codes(ladder) == { + "E09000001": "E12000007", + "E14000001": "E12000007", + "S12000033": "S92000003", + "S14000001": "S92000003", + "W06000001": "W92000004", + "W07000041": "W92000004", + } + split = SimpleNamespace( + constituency_code=np.array(["E14000001", "E14000001"]), + local_authority_code=np.array(["E09000001", "E09000001"]), + region_code=np.array(["E12000007", "E12000001"]), + ) + with pytest.raises(ValueError, match="must nest"): + uk_area_region_codes(split) + outside = SimpleNamespace( + constituency_code=np.array(["E14000001"]), + local_authority_code=np.array(["E09000001"]), + region_code=np.array(["E13000001"]), + ) + with pytest.raises(ValueError, match="outside the region tier"): + uk_area_region_codes(outside) diff --git a/packages/microcosm-build/tests/test_uk_ledger_targets.py b/packages/microcosm-build/tests/test_uk_ledger_targets.py index b298dc7a8..f2642736e 100644 --- a/packages/microcosm-build/tests/test_uk_ledger_targets.py +++ b/packages/microcosm-build/tests/test_uk_ledger_targets.py @@ -10,16 +10,21 @@ from microcosm.build.uk_runtime.ledger_targets import ( UK_CROSS_GRAIN_BRIDGES, UK_CROSS_GRAIN_GRAIN_PRECEDENCE, + UK_CROSS_GRAIN_PARENT_GEOGRAPHY_LEGS, UK_CROSS_GRAIN_RULE, + UK_REGION_TIER_CODES, _spec_geography, _uk_contract_targets, + _uk_cross_grain_leg_of_area, _uk_licensed_empty_legs_from_membership, align_uk_local_registry_parity_fixture, + align_uk_national_registry_parity_fixture, apply_uk_cross_grain_reconciliation, compile_uk_local_target_registry, compile_uk_target_registry, materialize_uk_ledger_targets, uk_census_household_uprating, + uk_cross_grain_leg_of_area, uk_ledger_households_total, uk_local_target_surface, uk_private_rent_mean_to_total, @@ -49,7 +54,7 @@ def test_uk_local_target_surface_uses_registry_names_and_reconciles() -> None: }, ), TargetSpec( - name="dwp.uc.households_by_area@E14000001", + name="dwp.uc.households_by_area@E14001073", entity="household", value=30.0, measure="uc_households", @@ -59,7 +64,7 @@ def test_uk_local_target_surface_uses_registry_names_and_reconciles() -> None: metadata={ "contract_target_id": "dwp.uc.households_by_area", "geography_level": "constituency", - "geography_id": "E14000001", + "geography_id": "E14001073", }, ), TargetSpec( @@ -88,7 +93,7 @@ def test_uk_local_target_surface_uses_registry_names_and_reconciles() -> None: uc = surface.loc[surface["metric"] == "uc_households"] assert uc["value"].tolist() == [60.0, 30.0] assert uc["target_name"].tolist() == [ - "dwp.uc.households_by_area@E14000001", + "dwp.uc.households_by_area@E14001073", "dwp.uc.households_by_area@S14000001", ] contract = _uk_contract_targets(national_only=False) @@ -126,9 +131,9 @@ def test_uk_local_target_surface_fires_k020_household_partition_bridge() -> None for position, target_id in enumerate(composition_ids) ] + [ - _household_spec("E14000001", "constituency", 10.0), + _household_spec("E14001073", "constituency", 10.0), _household_spec("S14000001", "constituency", 20.0), - _household_spec("E06000001", "local_authority", 10.0), + _household_spec("E09000001", "local_authority", 10.0), _household_spec("S12000005", "local_authority", 20.0), ], country="uk", @@ -244,7 +249,7 @@ def test_uk_local_target_surface_excludes_fanout_from_cross_grain_controls() -> "geography_id": area, }, ) - for area, value in (("E14000001", 30.0), ("S14000001", 15.0)) + for area, value in (("E14001073", 30.0), ("S14000001", 15.0)) ] ) @@ -371,7 +376,7 @@ def test_uk_local_target_surface_refuses_fanout_across_levels() -> None: ( { "ledger_geography_level": "constituency", - "ledger_geography_id": "E14000001", + "ledger_geography_id": "E14001073", }, "dwp.uc.households.*contract.*country", ), @@ -1025,11 +1030,13 @@ def test_household_condition_still_reduces_group_entities(): def test_uk_cross_grain_rule_constants_are_review_pinned(): assert UK_CROSS_GRAIN_GRAIN_PRECEDENCE == ( "country", + "region", "constituency", "la", ) assert UK_CROSS_GRAIN_RULE.grain_precedence == ( "country", + "region", "constituency", "la", ) @@ -1086,19 +1093,50 @@ def test_uk_age_cross_grain_bridges_are_complete_and_exclude_80_89(): ) -def test_uk_age_bridge_rescales_constituency_and_la_to_uk_control(): +def test_uk_age_bridge_rescales_constituency_and_la_to_region_controls(): + """Region-tier rows are the controls; each leg is one region or nation. + + London and the North East stand for the nine English regions (whose + constituencies and authorities resolve their leg through the crosswalk's + ladder-derived membership); Wales, Scotland and Northern Ireland are + Chronicle ``country`` rows that the surface places at the region grain + (microcosm#905), so here they carry ``grain: region`` directly. + """ + national_id = "ons.population.age_0_9_by_region" local_id = "ons.age.0_10" - constituency_values = (25.0, 25.0, 25.0, 24.999) - la_values = (25.0, 25.0, 25.0, 25.001) + controls = { + "E12000007": 100.0, + "E12000001": 50.0, + "W92000004": 40.0, + "S92000003": 30.0, + "N92000002": 20.0, + } + constituencies = { + "E14001073": 60.0, # London + "E14001101": 20.0, # North East + "W07000041": 30.0, + "S14000001": 25.0, + "N06000001": 15.0, + } + authorities = { + "E09000001": 80.0, # London + "E06000001": 60.0, # North East + "W06000001": 50.0, + "S12000005": 20.0, + "N09000001": 10.0, + } surface = pd.DataFrame( [ - { - "grain": "country", - "geography_id": "K02000001", - "target_id": national_id, - "value": 100.0, - }, + *[ + { + "grain": "region", + "geography_id": code, + "target_id": national_id, + "value": value, + } + for code, value in controls.items() + ], *[ { "grain": "constituency", @@ -1106,11 +1144,7 @@ def test_uk_age_bridge_rescales_constituency_and_la_to_uk_control(): "target_id": local_id, "value": value, } - for area, value in zip( - ("E14000001", "W07000041", "S14000001", "N06000001"), - constituency_values, - strict=True, - ) + for area, value in constituencies.items() ], *[ { @@ -1119,25 +1153,25 @@ def test_uk_age_bridge_rescales_constituency_and_la_to_uk_control(): "target_id": local_id, "value": value, } - for area, value in zip( - ("E06000001", "W06000001", "S12000005", "N09000001"), - la_values, - strict=True, - ) + for area, value in authorities.items() ], ] ) - reconciled, receipt = apply_uk_cross_grain_reconciliation( surface, (national_id,), ) - - assert reconciled.loc[reconciled["grain"] == "constituency", "value"].sum() == ( - pytest.approx(100.0) + expected_controls = list(controls.values()) + assert reconciled.loc[reconciled["grain"] == "region", "value"].tolist() == ( + expected_controls ) - assert reconciled.loc[reconciled["grain"] == "la", "value"].sum() == pytest.approx( - 100.0 + # One lower row per leg at each grain, so each is rescaled onto its own + # region's control, never onto a UK or England total. + assert reconciled.loc[ + reconciled["grain"] == "constituency", "value" + ].tolist() == pytest.approx(expected_controls) + assert reconciled.loc[reconciled["grain"] == "la", "value"].tolist() == ( + pytest.approx(expected_controls) ) groups = [ group @@ -1145,23 +1179,26 @@ def test_uk_age_bridge_rescales_constituency_and_la_to_uk_control(): if group["bridge_id"] == "national_age_0_9_vs_local_age_0_10" ] assert {group["legs"][0]["reason"] for group in groups} == { - "standing cross-grain rule: country controls constituency", - "standing cross-grain rule: country controls la", + "standing cross-grain rule: region controls constituency", + "standing cross-grain rule: region controls la", } - assert all(group["winning_grain"] == "country" for group in groups) + assert all(group["winning_grain"] == "region" for group in groups) for group in groups: - assert len(group["legs"]) == 1 - leg = group["legs"][0] - assert leg["parent_geography_id"] == "K02000001" - assert leg["leg"] == "England+Wales+Scotland+Northern Ireland" - assert leg["new_total"] == pytest.approx(100.0) - assert leg["declared_factor"] == pytest.approx(1.0, abs=2e-5) + assert [leg["leg"] for leg in group["legs"]] == sorted(controls) + for leg in group["legs"]: + assert leg["parent_geography_id"] == leg["leg"] + assert leg["new_total"] == pytest.approx(controls[leg["leg"]]) + london = next( + leg for leg in groups[0]["legs"] if leg["parent_geography_id"] == "E12000007" + ) + assert london["old_total"] in {60.0, 80.0} + assert london["declared_factor"] == pytest.approx(100.0 / london["old_total"]) def test_uk_empty_leg_licences_require_complete_signed_deferral_coverage(): membership = { "areas_by_geography_level": { - "local_authority": ["E06000001", "S12000005", "S12000006"], + "local_authority": ["E09000001", "S12000005", "S12000006"], }, "signed_deferrals": [ { @@ -1178,7 +1215,7 @@ def test_uk_empty_leg_licences_require_complete_signed_deferral_coverage(): } assert _uk_licensed_empty_legs_from_membership(membership) == { - "voa.council_tax_stock.by_area.band_a": frozenset({"Scotland"}), + "voa.council_tax_stock.by_area.band_a": frozenset({"S92000003"}), } @@ -1202,7 +1239,7 @@ def test_committed_contract_detects_exact_uc_payment_partition(): ], { "grain": "constituency", - "geography_id": "E14000001", + "geography_id": "E14001073", "target_id": "dwp.uc.households_by_area", "value": 30.0, }, @@ -1274,7 +1311,7 @@ def test_real_uk_bridges_resolve_contract_lower_sides(): ], { "grain": "constituency", - "geography_id": "E14000001", + "geography_id": "E14001073", "target_id": "ons.census.households", "value": 40.0, }, @@ -1304,7 +1341,7 @@ def test_real_uk_bridges_resolve_contract_lower_sides(): }, { "grain": "constituency", - "geography_id": "E14000001", + "geography_id": "E14001073", "target_id": "dwp.uc.households_by_area", "value": 30.0, }, @@ -1351,7 +1388,7 @@ def test_partially_bound_household_composition_bridge_stays_unbound_with_reviewe ], { "grain": "constituency", - "geography_id": "E14000001", + "geography_id": "E14001073", "target_id": "ons.census.households", "value": 40.0, }, @@ -1408,7 +1445,7 @@ def test_fully_bound_household_composition_bridge_reconciles_census_cells(): ], { "grain": "constituency", - "geography_id": "E14000001", + "geography_id": "E14001073", "target_id": "ons.census.households", "value": 40.0, }, @@ -1461,7 +1498,7 @@ def test_uk_front_door_reconciles_per_country_legs_and_builds_uniform_surface(): }, { "grain": "constituency", - "geography_id": "E14000001", + "geography_id": "E14001073", "target_id": "dwp.uc.households_by_area", "value": 30.0, }, @@ -1483,7 +1520,7 @@ def test_uk_front_door_reconciles_per_country_legs_and_builds_uniform_surface(): index=pd.Index([1, 2], name="household_id"), ) assigned = pd.Series( - ["E14000001", "S14000001"], + ["E14001073", "S14000001"], index=metrics.index, ) @@ -1623,13 +1660,13 @@ def _census_household_registry(*extra: TargetSpec) -> TargetRegistry: return TargetRegistry( [ _household_spec( - "E14000001", "constituency", 10.0, from_period=2021, to_period=2025 + "E14001073", "constituency", 10.0, from_period=2021, to_period=2025 ), _household_spec( "S14000001", "constituency", 20.0, from_period=2022, to_period=2025 ), _household_spec( - "E06000001", "local_authority", 12.0, from_period=2021, to_period=2025 + "E09000001", "local_authority", 12.0, from_period=2021, to_period=2025 ), _household_spec( "S12000005", "local_authority", 18.0, from_period=2022, to_period=2025 @@ -1698,7 +1735,7 @@ def test_uk_local_target_surface_uprates_households_and_tenure_by_grain() -> Non } registry = _census_household_registry( composition_spec, - _tenure_spec("E06000001", 5.0, from_period=2021, to_period=2025), + _tenure_spec("E09000001", 5.0, from_period=2021, to_period=2025), _tenure_spec("S12000005", 4.0, from_period=2022, to_period=2025), _tenure_spec("E06000002", 3.0), ) @@ -1749,7 +1786,7 @@ def test_uk_local_target_surface_refuses_ineligible_household_denominator() -> N uprating = uk_census_household_uprating(registry, reference, period=2025) bad_specs = list(registry.specs) bad_specs[0] = _household_spec( - "E14000001", "constituency", 10.0, from_period=2020, to_period=2025 + "E14001073", "constituency", 10.0, from_period=2020, to_period=2025 ) with pytest.raises(ValueError, match="denominator.*not eligible"): uk_local_target_surface( @@ -1765,7 +1802,7 @@ def _private_rent_target_frame() -> pd.DataFrame: [ { "area_type": "la", - "area_code": "E06000001", + "area_code": "E09000001", "metric": "rent/private_rent", "family": "private_rent", "value": 1_000.0, @@ -1773,7 +1810,7 @@ def _private_rent_target_frame() -> pd.DataFrame: }, { "area_type": "la", - "area_code": "E06000001", + "area_code": "E09000001", "metric": "tenure/private_rent", "family": "tenure", "value": 20.0, @@ -1838,7 +1875,7 @@ def test_uk_private_rent_mean_to_total_composes_and_receipts_cells() -> None: "renter_count_source": "ons.tenure.private_rent (A17-uprated)", "cells_detail": [ { - "area_code": "E06000001", + "area_code": "E09000001", "mean_monthly_rent": 1_000.0, "renter_households": 20.0, "total": 240_000.0, @@ -1876,10 +1913,10 @@ def test_uk_private_rent_mean_to_total_refuses_invalid_inputs_by_area( ) -> None: frame = _private_rent_target_frame() frame.loc[ - (frame["area_code"] == "E06000001") & (frame["metric"] == metric), "value" + (frame["area_code"] == "E09000001") & (frame["metric"] == metric), "value" ] = value - with pytest.raises(ValueError, match="E06000001"): + with pytest.raises(ValueError, match="E09000001"): uk_private_rent_mean_to_total(frame) @@ -1910,7 +1947,7 @@ def spec(name, metric, value): metadata={ "contract_target_id": name.split("@", 1)[0], "geography_level": "local_authority", - "geography_id": "E06000001", + "geography_id": "E09000001", "uprating_from_period": 2021, "uprating_to_period": 2025, }, @@ -1972,7 +2009,7 @@ def test_tenure_receipt_counts_attempted_and_skipped_holds( from_period, to_period, reason, eligible ): registry = _census_household_registry( - _tenure_spec("E06000001", 5.0, from_period=from_period, to_period=to_period) + _tenure_spec("E09000001", 5.0, from_period=from_period, to_period=to_period) ) reference = uk_ledger_households_total( (_households_total_fact(2025, 33.0),), period=2025 @@ -1995,3 +2032,437 @@ def test_tenure_receipt_counts_attempted_and_skipped_holds( assert surface.loc[ surface["metric"] == "tenure/social_rent", "value" ].tolist() == pytest.approx([5.5 if eligible else 5.0]) + + +def test_uk_cross_grain_legs_are_the_region_tier() -> None: + codes = list(UK_REGION_TIER_CODES) + assert len(codes) == 12 + english = [code for code in codes if code.startswith("E12")] + assert len(english) == 9 + legs = UK_CROSS_GRAIN_PARENT_GEOGRAPHY_LEGS + for code in codes: + assert legs[code] == (code,) + assert legs["K02000001"] == tuple(codes) + assert legs["K03000001"] == (*english, "W92000004", "S92000003") + assert legs["E92000001"] == tuple(english) + assert UK_CROSS_GRAIN_RULE.parent_geography_legs is legs + assert "England" not in {leg for legs_ in legs.values() for leg in legs_} + + +def test_uk_cross_grain_leg_of_area_resolves_regions_nations_and_refuses() -> None: + # Tier codes are their own leg. + assert _uk_cross_grain_leg_of_area("E12000007") == "E12000007" + assert _uk_cross_grain_leg_of_area("W92000004") == "W92000004" + # Nations resolve by GSS prefix without a crosswalk lookup. + assert _uk_cross_grain_leg_of_area("W07000041") == "W92000004" + assert _uk_cross_grain_leg_of_area("S14000001") == "S92000003" + assert _uk_cross_grain_leg_of_area("N06000001") == "N92000002" + # English areas resolve through the crosswalk's ladder-derived membership. + assert _uk_cross_grain_leg_of_area("E14001073") == "E12000007" + assert _uk_cross_grain_leg_of_area("E09000001") == "E12000007" + assert _uk_cross_grain_leg_of_area("E06000001") == "E12000001" + with pytest.raises(ValueError, match="not in the local-area crosswalk"): + _uk_cross_grain_leg_of_area("E14000001") + with pytest.raises(ValueError, match="Unknown UK area code prefix"): + _uk_cross_grain_leg_of_area("X12345678") + with pytest.raises(ValueError, match="must not be blank"): + _uk_cross_grain_leg_of_area(" ") + + +def test_align_uk_national_registry_parity_fixture_renames_regional_rows() -> None: + fixture = { + "rows": [ + {"name": "ons/london_age_0_9", "value": 1.0, "period": 2025}, + {"name": "ons/yorkshire_and_the_humber_age_80_89", "value": 2.0}, + {"name": "ons/northern_ireland_age_10_19", "value": 3.0}, + {"name": "voa/council_tax/NORTH_EAST/A", "value": 4.0}, + {"name": "voa/council_tax/LONDON/total", "value": 5.0}, + {"name": "voa/council_tax/WALES/A", "value": 6.0}, + {"name": "ons/female_0_4", "value": 7.0}, + {"name": "ons/uk_population", "value": 8.0}, + "not-a-row", + ] + } + aligned = align_uk_national_registry_parity_fixture(fixture) + assert [ + row if isinstance(row, str) else row["name"] for row in aligned["rows"] + ] == [ + "ons.population.age_0_9_by_region@E12000007", + "ons.population.age_80_89_by_region@E12000003", + "ons.population.age_10_19_by_region@N92000002", + "voa.council_tax_stock.band_a@E12000001", + "voa.council_tax_stock.total@E12000007", + "voa/council_tax/WALES/A", + "ons/female_0_4", + "ons/uk_population", + "not-a-row", + ] + london = aligned["rows"][0] + assert london["measure"] == london["name"] + assert london["contract_target_id"] == "ons.population.age_0_9_by_region" + assert london["value"] == 1.0 and london["period"] == 2025 + # The input is never mutated. + assert fixture["rows"][0]["name"] == "ons/london_age_0_9" + + +def _region_tier_control_spec( + area: str, + value: float, + *, + ledger_level: str, + cross_grain_grain: str | None, +) -> TargetSpec: + metadata = { + "contract_target_id": "ons.population.age_0_9_by_region", + "ledger_geography_level": ledger_level, + "ledger_geography_id": area, + } + if cross_grain_grain is not None: + metadata["cross_grain_grain"] = cross_grain_grain + return TargetSpec( + name=f"ons.population.age_0_9_by_region@{area}", + entity="person", + value=value, + measure=f"ons.population.age_0_9_by_region@{area}", + period=2025, + source="synthetic region tier", + family="ons_population", + metadata=metadata, + ) + + +def _local_age_spec(area: str, value: float) -> TargetSpec: + return TargetSpec( + name=f"ons.age.0_10@{area}", + entity="person", + value=value, + measure="age/0_10", + period=2025, + source="synthetic local age", + family="ons_population", + metadata={ + "contract_target_id": "ons.age.0_10", + "geography_level": "constituency", + "geography_id": area, + }, + ) + + +def test_uk_local_target_surface_places_nation_rows_at_the_region_grain() -> None: + """Chronicle stamps Wales at ``country``; the stamp must not outrank London.""" + + registry = TargetRegistry( + [ + _region_tier_control_spec( + "E12000007", 100.0, ledger_level="region", cross_grain_grain="region" + ), + _region_tier_control_spec( + "W92000004", 40.0, ledger_level="country", cross_grain_grain="region" + ), + _local_age_spec("E14001073", 60.0), + _local_age_spec("W07000041", 30.0), + ], + country="uk", + ) + surface, receipt = uk_local_target_surface( + registry, + bound_national_target_ids=("ons.population.age_0_9_by_region",), + period=2025, + ) + age = surface.loc[surface["metric"] == "age/0_10"] + assert age["value"].tolist() == pytest.approx([100.0, 40.0]) + group = next( + group + for group in receipt["groups"] + if group["bridge_id"] == "national_age_0_9_vs_local_age_0_10" + ) + assert group["winning_grain"] == "region" + assert [leg["parent_geography_id"] for leg in group["legs"]] == [ + "E12000007", + "W92000004", + ] + + +def test_uk_local_target_surface_reconciles_mixed_country_and_region_tiers() -> None: + """A nation row left at Chronicle's country grain still parents its own + constituencies: each lower leg takes its nearest covering control.""" + + registry = TargetRegistry( + [ + _region_tier_control_spec( + "E12000007", 100.0, ledger_level="region", cross_grain_grain="region" + ), + _region_tier_control_spec( + "W92000004", 40.0, ledger_level="country", cross_grain_grain=None + ), + _local_age_spec("E14001073", 60.0), + _local_age_spec("W07000041", 30.0), + ], + country="uk", + ) + surface, receipt = uk_local_target_surface( + registry, + bound_national_target_ids=("ons.population.age_0_9_by_region",), + period=2025, + ) + age = surface.loc[surface["metric"] == "age/0_10"] + assert age["value"].tolist() == pytest.approx([100.0, 40.0]) + pairs = { + group["inconsistency_id"].rsplit(":", 1)[1] + for group in receipt["groups"] + if group["bridge_id"] == "national_age_0_9_vs_local_age_0_10" + } + assert pairs == { + "country_over_region", + "region_over_constituency", + "country_over_constituency", + } + assert {e["parent_geography_id"] for e in receipt["absent_middle_tier_legs"]} == { + "W92000004" + } + + +def test_voa_region_controls_and_the_scottish_country_control_share_the_surface() -> ( + None +): + """Vahid's #906 repro: the English VOA band rows at region grain and the + Scottish CTAXBASE row at country grain carry one measurement signature; + each authority reconciles to the control that covers its leg.""" + + rows = [ + ("country", "S92000003", "scotgov.council_tax_stock.band_a", 40.0), + ("region", "E12000007", "voa.council_tax_stock.band_a", 100.0), + ("region", "E12000001", "voa.council_tax_stock.band_a", 50.0), + ("la", "E09000001", "voa.council_tax_stock.by_area.band_a", 60.0), + ("la", "E06000001", "voa.council_tax_stock.by_area.band_a", 20.0), + ("la", "S12000033", "voa.council_tax_stock.by_area.band_a", 30.0), + ] + surface = pd.DataFrame( + rows, columns=["grain", "geography_id", "target_id", "value"] + ) + reconciled, receipt = apply_uk_cross_grain_reconciliation( + surface, + ("scotgov.council_tax_stock.band_a", "voa.council_tax_stock.band_a"), + ) + assert reconciled["value"].tolist() == pytest.approx( + [40.0, 100.0, 50.0, 100.0, 50.0, 40.0] + ) + pairs = { + group["inconsistency_id"].rsplit(":", 1)[1]: group + for group in receipt["groups"] + } + assert [leg["parent_geography_id"] for leg in pairs["region_over_la"]["legs"]] == [ + "E12000001", + "E12000007", + ] + assert [leg["parent_geography_id"] for leg in pairs["country_over_la"]["legs"]] == [ + "S92000003" + ] + assert receipt["empty_legs_licensed"] == [] + # Without the Scottish control bound, the Scottish authority has no parent + # and the surface refuses rather than borrowing an English region. + with pytest.raises(ValueError, match="unparented lower-grain leg"): + apply_uk_cross_grain_reconciliation( + surface.loc[surface["target_id"] != "scotgov.council_tax_stock.band_a"], + ("voa.council_tax_stock.band_a",), + ) + + +def test_uk_local_target_surface_refuses_an_unknown_cross_grain_grain() -> None: + registry = TargetRegistry( + [ + _region_tier_control_spec( + "E12000007", 100.0, ledger_level="region", cross_grain_grain="itl2" + ), + _local_age_spec("E14001073", 60.0), + ], + country="uk", + ) + with pytest.raises(ValueError, match="cross_grain_grain 'itl2'"): + uk_local_target_surface( + registry, + bound_national_target_ids=("ons.population.age_0_9_by_region",), + period=2025, + ) + + +def test_run_ladder_membership_resolves_legs_the_crosswalk_does_not_know() -> None: + """A run supplies its own ladder's area -> tier mapping; the crosswalk is the fallback.""" + + run_legs = uk_cross_grain_leg_of_area( + {"E14000001": "E12000007", "E06000001": "E12000001"} + ) + assert run_legs("E14000001") == "E12000007" + assert run_legs("E06000001") == "E12000001" + # Tier codes and nations never consult the mapping. + assert run_legs("E12000003") == "E12000003" + assert run_legs("W07000041") == "W92000004" + with pytest.raises(ValueError, match="run's ladder membership"): + run_legs("E14001073") + # The default resolver reads the committed crosswalk. + assert _uk_cross_grain_leg_of_area("E14001073") == "E12000007" + with pytest.raises(ValueError, match="local-area crosswalk"): + _uk_cross_grain_leg_of_area("E14000001") + + national_id = "ons.population.age_0_9_by_region" + surface = pd.DataFrame( + [ + { + "grain": "region", + "geography_id": "E12000007", + "target_id": national_id, + "value": 100.0, + }, + { + "grain": "constituency", + "geography_id": "E14000001", + "target_id": "ons.age.0_10", + "value": 60.0, + }, + ] + ) + reconciled, receipt = apply_uk_cross_grain_reconciliation( + surface, (national_id,), area_region_codes={"E14000001": "E12000007"} + ) + assert reconciled["value"].tolist() == pytest.approx([100.0, 100.0]) + assert receipt["groups"][0]["legs"][0]["parent_geography_id"] == "E12000007" + with pytest.raises(ValueError, match="local-area crosswalk"): + apply_uk_cross_grain_reconciliation(surface, (national_id,)) + + +_COMPOSITION_IDS = ( + "ons.household_composition.lone_households_under_65", + "ons.household_composition.lone_households_over_65", + "ons.household_composition.unrelated_adult_households", + "ons.household_composition.couple_no_children_households", + "ons.household_composition.couple_under_3_children_households", + "ons.household_composition.couple_3_plus_children_households", + "ons.household_composition.couple_non_dependent_children_only_households", + "ons.household_composition.lone_parent_dependent_children_households", + "ons.household_composition.lone_parent_non_dependent_children_households", + "ons.household_composition.multi_family_households", +) + + +def _stock_total_spec( + area: str, value: float, *, target_id: str, ledger_level: str, region_grain: bool +) -> TargetSpec: + metadata = { + "contract_target_id": target_id, + "ledger_geography_level": ledger_level, + "ledger_geography_id": area, + } + if region_grain: + metadata["cross_grain_grain"] = "region" + name = f"{target_id}@{area}" if region_grain else target_id + return TargetSpec( + name=name, + entity="household", + value=value, + measure=name, + period=2025, + source="synthetic stock total", + family="council_tax_stock", + metadata=metadata, + ) + + +def test_household_composition_partition_and_stock_totals_reconcile_together() -> None: + """Vahid's #906 round-2 surface: the ten composition rows (a UK partition), + the English VOA stock totals at region grain and the Scottish CTAXBASE + total at country grain all count households with no band filter. They + must not fall into one signature group, or two country controls meet on + the Scottish leg and the UK partition would rescale England's stock.""" + + specs = [ + _national_control_spec( + f"composition-{index}", + value=10.0, + target_id=target_id, + geography_level="country", + geography_id="K02000001", + ) + for index, target_id in enumerate(_COMPOSITION_IDS) + ] + specs.extend( + [ + _stock_total_spec( + "E12000007", + 100.0, + target_id="voa.council_tax_stock.total", + ledger_level="region", + region_grain=True, + ), + _stock_total_spec( + "E12000001", + 50.0, + target_id="voa.council_tax_stock.total", + ledger_level="region", + region_grain=True, + ), + _stock_total_spec( + "S92000003", + 40.0, + target_id="scotgov.council_tax_stock.total", + ledger_level="country", + region_grain=False, + ), + _household_spec("E14001073", "constituency", 60.0), + _household_spec("W07000041", "constituency", 30.0), + ] + ) + surface, receipt = uk_local_target_surface( + TargetRegistry(specs, country="uk"), + bound_national_target_ids=( + *_COMPOSITION_IDS, + "voa.council_tax_stock.total", + "scotgov.council_tax_stock.total", + ), + period=2025, + ) + # The composition partition (100 households UK-wide) still parents the + # census cells; the stock totals never enter that group. + households = surface.loc[surface["metric"] == "households", "value"].tolist() + assert households == pytest.approx([100.0 * 60.0 / 90.0, 100.0 * 30.0 / 90.0]) + group_ids = {group["inconsistency_id"] for group in receipt["groups"]} + assert all( + "uk.household.count" in gid or "national_household" in gid for gid in group_ids + ) + stock_groups = [ + group + for group in receipt["groups"] + if any( + "council_tax_stock" in target_id + for leg in group["legs"] + for target_id in leg["higher_target_ids"] + ) + ] + assert stock_groups == [] + + +def test_leg_licences_follow_the_resolver_the_surface_reconciles_with() -> None: + """A run ladder that places a synthetic English authority in London yields + a London licence; the committed-crosswalk resolver refuses that code.""" + + membership = { + "areas_by_geography_level": {"local_authority": ["E06099999", "S12000005"]}, + "signed_deferrals": [ + { + "target_id": "voa.council_tax_stock.by_area.band_a", + "geography_level": "local_authority", + "area_ids": ["E06099999"], + } + ], + } + run_legs = uk_cross_grain_leg_of_area({"E06099999": "E12000007"}) + assert _uk_licensed_empty_legs_from_membership( + membership, leg_of_area=run_legs + ) == {"voa.council_tax_stock.by_area.band_a": frozenset({"E12000007"})} + with pytest.raises(ValueError, match="local-area crosswalk"): + _uk_licensed_empty_legs_from_membership(membership) + # A roster area the run's ladder does not carry can sit on no surface row: + # it is skipped under the run resolver, never a refusal. + partial = uk_cross_grain_leg_of_area({"E06099998": "E12000001"}) + assert ( + _uk_licensed_empty_legs_from_membership(membership, leg_of_area=partial) == {} + ) diff --git a/packages/microcosm-build/tests/test_uk_local_area_crosswalk.py b/packages/microcosm-build/tests/test_uk_local_area_crosswalk.py index 1a2a9e800..6b4086af6 100644 --- a/packages/microcosm-build/tests/test_uk_local_area_crosswalk.py +++ b/packages/microcosm-build/tests/test_uk_local_area_crosswalk.py @@ -9,6 +9,7 @@ import pytest from microcosm.build.country_spec import load_country_spec +from microcosm.calibrate.geography_constants import UK_REGION_TIER from tools.generate_uk_local_area_crosswalk import build_local_area_crosswalk LADDER_ARTIFACT = Path("build/uk/uk_oa_ladder_2021.npz") @@ -102,3 +103,28 @@ def test_uk_local_area_crosswalk_pins_rosters_and_vintages() -> None: "S12", "W06", } + + +def test_uk_local_area_crosswalk_carries_region_tier_membership() -> None: + resource = _load() + tier = {code for _, code in UK_REGION_TIER} + nation_by_prefix = {"W": "W92000004", "S": "S92000003", "N": "N92000002"} + for payload in resource["levels"].values(): + by_area = payload["region_code_by_area"] + assert set(by_area) == set(payload["area_ids"]) + assert set(by_area.values()) <= tier + for area_id, region in by_area.items(): + if area_id.startswith("E"): + assert region.startswith("E12"), (area_id, region) + else: + assert region == nation_by_prefix[area_id[0]], (area_id, region) + constituency = resource["levels"]["constituency"]["region_code_by_area"] + local_authority = resource["levels"]["local_authority"]["region_code_by_area"] + # London: 75 constituencies and 33 authorities (32 boroughs + the City); + # the North East holds 12 authorities. Nation counts follow the rosters. + assert sum(region == "E12000007" for region in constituency.values()) == 75 + assert sum(region == "E12000007" for region in local_authority.values()) == 33 + assert sum(region == "E12000001" for region in local_authority.values()) == 12 + assert sum(region == "S92000003" for region in local_authority.values()) == 32 + assert sum(region == "W92000004" for region in local_authority.values()) == 22 + assert sum(region == "N92000002" for region in local_authority.values()) == 11 diff --git a/packages/microcosm-build/tests/test_uk_measure_simulation.py b/packages/microcosm-build/tests/test_uk_measure_simulation.py index 28f52db0f..1fd06936c 100644 --- a/packages/microcosm-build/tests/test_uk_measure_simulation.py +++ b/packages/microcosm-build/tests/test_uk_measure_simulation.py @@ -603,7 +603,20 @@ def test_exclusion_applier_warns_within_week_of_expiry(): def test_packaged_exclusions_load(): exclusions = load_uk_calibration_measure_exclusions() names = [entry["name"] for entry in exclusions] - assert len(names) == len(set(names)) == 47 + assert len(names) == len(set(names)) == 50 + band_h_region_cells = [ + entry + for entry in exclusions + if entry["name"].startswith("voa.council_tax_stock.band_h@E12") + ] + assert [entry["name"] for entry in band_h_region_cells] == [ + "voa.council_tax_stock.band_h@E12000001", + "voa.council_tax_stock.band_h@E12000002", + "voa.council_tax_stock.band_h@E12000003", + ] + assert {entry["approved_on"] for entry in band_h_region_cells} == {"2026-09-14"} + assert {entry["tracking"] for entry in band_h_region_cells} == {"microcosm#796"} + assert {entry["expires_on"] for entry in band_h_region_cells} == {"2026-11-26"} for marker, expected in _PACKAGED_EXCLUSION_CENSUS.items(): matched = [name for name in names if marker in name] diff --git a/packages/microcosm-build/tests/test_uk_national_calibration.py b/packages/microcosm-build/tests/test_uk_national_calibration.py index df0516259..2f614a4ba 100644 --- a/packages/microcosm-build/tests/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/test_uk_national_calibration.py @@ -41,7 +41,7 @@ from microcosm.calibrate import TargetRegistry, TargetSpec from microcosm.frame import EntitySchema, Frame, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 424 +ACTIVE_REFERENCE_COUNT = 595 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/test_uk_target_references.py b/packages/microcosm-build/tests/test_uk_target_references.py index cae71b11d..776cc98a3 100644 --- a/packages/microcosm-build/tests/test_uk_target_references.py +++ b/packages/microcosm-build/tests/test_uk_target_references.py @@ -38,6 +38,10 @@ load_uk_chronicle_feed, ) from microcosm.build.uk_runtime.local_target_census import _LEDGER_FACT_FEED_PIN +from microcosm.calibrate.geography_constants import ( + UK_REGION_TIER, + UK_REGION_TIER_ENUM, +) from microcosm.calibrate.matrix import build_constraint_matrix from microcosm.frame import EntitySchema, Frame, WeightKind, Weights from tools.build_uk_ledger_compile_parity_signed_differences import ( @@ -56,7 +60,8 @@ _value_operation_by_target_id, ) -ACTIVE_REFERENCE_COUNT = 424 +ACTIVE_REFERENCE_COUNT = 595 +REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -221,21 +226,34 @@ def test_uk_target_references_follow_contract_derivation_rules() -> None: contract_target_id = reference["metadata"]["contract_target_id"] target = targets_by_id[contract_target_id] binding = target["bindings"]["policyengine"] + fanout_cell = reference["metadata"].get("geography_id") for key, value in target["ledger_selector"].items(): if key == "dimension_values": assert value.items() <= reference["ledger_selector"][key].items() continue assert reference["ledger_selector"][key] == value - # Region-only contract targets (the DfT London bus rows) pin the - # publisher's region-stamped fact; everything else pins a country. - expected_level = ( - "region" - if list(target.get("geography_levels") or ()) == ["region"] - else "country" - ) - assert reference["ledger_selector"]["geography_level"] == expected_level - assert reference["ledger_selector"]["geography_id"] + if fanout_cell: + # Two-level (country + region) targets fan out over the region + # tier: each cell pins the tier's level for its area and is named + # and measured target_id@geography_id (microcosm#905). + assert reference["name"] == f"{contract_target_id}@{fanout_cell}" + assert sorted(target["geography_levels"]) == ["country", "region"] + assert ( + reference["ledger_selector"]["geography_level"] + == (REGION_TIER_LEVEL[fanout_cell]) + ) + assert reference["ledger_selector"]["geography_id"] == fanout_cell + else: + # Region-only contract targets (the DfT London bus rows) pin the + # publisher's region-stamped fact; everything else pins a country. + expected_level = ( + "region" + if list(target.get("geography_levels") or ()) == ["region"] + else "country" + ) + assert reference["ledger_selector"]["geography_level"] == expected_level + assert reference["ledger_selector"]["geography_id"] assert reference["entity"] == _expected_reference_entity(target) expected_measure = ( binding["metric_name"] @@ -261,6 +279,26 @@ def test_uk_target_references_follow_contract_derivation_rules() -> None: expected_metadata["measurement_period"] = str(binding["measurement_period"]) if binding.get("require_matching_fact_period"): expected_metadata["source_period_policy"] = "exact_observation" + if fanout_cell: + expected_metadata.update( + { + "geography_level": REGION_TIER_LEVEL[fanout_cell], + "geography_id": fanout_cell, + "geography_predicate": json.dumps( + { + "entity": "household", + "variable": "region", + "operator": "==", + "value": UK_REGION_TIER_ENUM[fanout_cell], + "reduce": "any", + "map_to": _expected_reference_entity(target), + }, + sort_keys=True, + separators=(",", ":"), + ), + "cross_grain_grain": "region", + } + ) assert reference["metadata"] == expected_metadata category_id = target["category_id"] category = resource["hierarchy"]["categories"][category_id] @@ -629,7 +667,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 424, + "active": 595, "no_fact_at_or_before_period": 7, "signed_excluded": 7, } @@ -668,12 +706,30 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: { "family": "council_tax_stock", "status": "active_declared_rows", - "active_reference_count": 18, + "active_reference_count": 90, + "signed_rationale": ( + "VOA (England) and Scottish Government CTAXBASE (Scotland) " + "council-tax stock bands are declared as nine explicit target " + "rows each, including total. The Scottish rows resolve with " + "their country-level geography and band pin; the English rows " + "fan out over the nine English regions of the region tier " + "(microcosm#905), each cell resolving VOA's region-stamped " + "band count with the same band pin." + ), + }, + { + "family": "ons_population", + "status": "active_region_tier_fanout", + "active_reference_count": 108, "signed_rationale": ( - "VOA (England and Wales) and Scottish Government CTAXBASE " - "(Scotland) council-tax stock bands are declared as nine " - "explicit target rows each, including total, and each resolves " - "with its country-level geography and band pin." + "The nine ONS population-by-age-band targets fan out over the " + "twelve-area region tier (nine English regions at Chronicle's " + "region level, Wales, Scotland and Northern Ireland at country " + "level), one reference per area, each scoped on the spine by " + "a household-region predicate and placed at the region grain " + "of the cross-grain rule (microcosm#905). The former single " + "UK-wide row per band is retired: the tier sums to it within " + "the same publication." ), }, ] @@ -1250,3 +1306,52 @@ def test_public_cgt_parity_fixture_rejects_stale_values_and_unsigned_names(mutat signed = [r for r in signed if r["name"] != omitted] gate = ledger_compile_parity_gate(actual, fixture, signed_differences=signed) assert not gate.passed + + +def test_two_level_targets_fan_out_over_the_region_tier() -> None: + resource = _load_uk_resource("target_references.json") + membership = _load_uk_resource("target_reference_membership.json") + contract = _load_uk_resource("uk_population_targets.json") + two_level = [ + target["target_id"] + for target in contract["targets"] + if sorted(target.get("geography_levels") or ()) == ["country", "region"] + ] + assert len(two_level) == 18 + ons = [target_id for target_id in two_level if target_id.startswith("ons.")] + voa = [target_id for target_id in two_level if target_id.startswith("voa.")] + assert len(ons) == 9 and len(voa) == 9 + by_contract: dict[str, list[dict]] = {} + for reference in resource["target_references"]: + by_contract.setdefault(reference["metadata"]["contract_target_id"], []).append( + reference + ) + tier_codes = [code for _, code in UK_REGION_TIER] + english = [code for code in tier_codes if code.startswith("E12")] + for target_id in two_level: + rows = by_contract[target_id] + cells = [row["metadata"]["geography_id"] for row in rows] + # The retired single country row is gone: every row is a tier cell. + assert all("@" in row["name"] for row in rows), target_id + assert cells == (tier_codes if target_id in ons else english), target_id + assert [row["measure"] for row in rows] == [row["name"] for row in rows] + assert {row["metadata"]["cross_grain_grain"] for row in rows} == {"region"} + for row in rows: + predicate = json.loads(row["metadata"]["geography_predicate"]) + assert ( + predicate["value"] + == UK_REGION_TIER_ENUM[row["metadata"]["geography_id"]] + ) + assert predicate["map_to"] == row["entity"] + pins = membership["geography_pins"][target_id] + assert [cell["geography_id"] for cell in pins["geography_fanout"]] == cells + candidates = membership["targets"][target_id]["candidates"] + assert [entry["geography_id"] for entry in candidates] == cells + assert {entry["status"] for entry in candidates} == {"active"} + assert sum(len(by_contract[target_id]) for target_id in two_level) == 189 + # The twelve ONS cells of a band sum to the retired UK row of the same + # publication (the 0-9 band: 7,553,013 at mid-2024). + zero_to_nine = membership["targets"]["ons.population.age_0_9_by_region"] + assert sum(entry["resolved_value"] for entry in zero_to_nine["candidates"]) == ( + 7_553_013.0 + ) diff --git a/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py b/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py index 172c58795..058cd6c94 100644 --- a/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py +++ b/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py @@ -12,6 +12,9 @@ __all__ = [ "UK_GEOGRAPHY_ID_TO_LABEL", + "UK_LADDER_NATION_REGION_CODES", + "UK_REGION_TIER", + "UK_REGION_TIER_ENUM", "US_STATE_FIPS_TO_POSTAL", "US_STATE_NUMERIC_FIPS_TO_POSTAL", "US_STATE_POSTAL_TO_NUMERIC_FIPS", @@ -41,6 +44,60 @@ ) +#: The twelve-area region tier of the national calibration surface, in the +#: order the FRS ``gvtregno`` coding and the incumbent's regional rows use: +#: the nine English regions at Chronicle's ``region`` level, then Wales, +#: Scotland and Northern Ireland, which Chronicle stamps at ``country`` (their +#: GSS codes are country codes) but which sit at the same ITL1 tier as the +#: English regions. Two-level (country + region) contract targets fan out +#: over this roster (microcosm#905); every code is a key of +#: ``UK_GEOGRAPHY_ID_TO_LABEL``, so the schema-8 hierarchy can label it. +UK_REGION_TIER: tuple[tuple[str, str], ...] = ( + ("region", "E12000001"), # North East + ("region", "E12000002"), # North West + ("region", "E12000003"), # Yorkshire and The Humber + ("region", "E12000004"), # East Midlands + ("region", "E12000005"), # West Midlands + ("region", "E12000006"), # East of England + ("region", "E12000007"), # London + ("region", "E12000008"), # South East + ("region", "E12000009"), # South West + ("country", "W92000004"), # Wales + ("country", "S92000003"), # Scotland + ("country", "N92000002"), # Northern Ireland +) + +#: Region-tier GSS code -> the spine's ``region`` enum name (``REGION_MAP`` in +#: ``frs_spine``), the value a fan-out row's geography predicate compares +#: against. Kept beside the roster so the two cannot drift apart. +UK_REGION_TIER_ENUM: Mapping[str, str] = MappingProxyType( + { + "E12000001": "NORTH_EAST", + "E12000002": "NORTH_WEST", + "E12000003": "YORKSHIRE", + "E12000004": "EAST_MIDLANDS", + "E12000005": "WEST_MIDLANDS", + "E12000006": "EAST_OF_ENGLAND", + "E12000007": "LONDON", + "E12000008": "SOUTH_EAST", + "E12000009": "SOUTH_WEST", + "W92000004": "WALES", + "S92000003": "SCOTLAND", + "N92000002": "NORTHERN_IRELAND", + } +) + +#: The ladder's nation pseudo region codes -> the GSS country code the region +#: tier uses for the same area, so an OA-derived region membership can be +#: expressed in tier codes. +UK_LADDER_NATION_REGION_CODES: Mapping[str, str] = MappingProxyType( + { + "W99999999": "W92000004", + "S99999999": "S92000003", + "N99999999": "N92000002", + } +) + # Two-character Census state FIPS code -> USPS postal abbreviation. This # project treats the District of Columbia as a state-level geography. US_STATE_FIPS_TO_POSTAL: Mapping[str, str] = MappingProxyType( diff --git a/tools/build_uk_ledger_compile_parity_signed_differences.py b/tools/build_uk_ledger_compile_parity_signed_differences.py index 0a3f2acf6..0f798f0f8 100644 --- a/tools/build_uk_ledger_compile_parity_signed_differences.py +++ b/tools/build_uk_ledger_compile_parity_signed_differences.py @@ -12,6 +12,7 @@ from microcosm.build.uk_runtime.ledger_targets import ( LOCAL_REGISTRY_PARITY_FIXTURE_RESOURCE, align_uk_local_registry_parity_fixture, + align_uk_national_registry_parity_fixture, compile_uk_local_target_registry, compile_uk_target_registry, ) @@ -382,6 +383,18 @@ def _aligned_fixture(fixture: dict) -> dict: return aligned +_REGION_TIER_ONS_DRIFT_RATIONALE = ( + "Region-tier ONS population cell (microcosm#905): the Ledger row binds the " + "ONS mid-year estimate by single year of age at Chronicle's region or " + "country stamp, held to the comparison period as identity, while the " + "incumbent's regional row is an ONS subnational projection rounded to the " + "nearest thousand. The difference is projection-versus-estimate vintage " + "and rounding, never area or band definition: the nine English regions " + "and three nations sum exactly to the retired UK-wide row of the same " + "publication." +) + + def _add_signed_rationale_notes( report: dict[str, object], *, @@ -414,6 +427,8 @@ def _add_signed_rationale_notes( "baseline; it does not redatum the observations to the comparison " "year or create a new year ruling." ) + elif "_by_region@" in name and row.get("kind") == "calibration_drift": + row["reason"] = _REGION_TIER_ONS_DRIFT_RATIONALE elif fixture_resource != "registry_parity_fixture_2025.json": continue elif name in _CGT_OBSERVED_RATIONALES: @@ -475,7 +490,7 @@ def _fixture_for_receipt(spec: ParityReceiptSpec) -> dict: fixture = _aligned_fixture(_load_fixture(spec.fixture_resource)) if spec.surface == "local": return align_uk_local_registry_parity_fixture(fixture) - return fixture + return align_uk_national_registry_parity_fixture(fixture) def main() -> None: diff --git a/tools/build_uk_rowwise_candidate.py b/tools/build_uk_rowwise_candidate.py index 4b87b0e04..02cfaa766 100644 --- a/tools/build_uk_rowwise_candidate.py +++ b/tools/build_uk_rowwise_candidate.py @@ -90,6 +90,7 @@ runtime_provenance, solve_uk_rowwise_weights_under_doctrine, spine_provenance_from_sidecar, + uk_area_region_codes, uk_census_household_uprating, uk_fit_by_family, uk_household_weight_kind, @@ -1540,6 +1541,7 @@ def _build_joint_problem( period=period, reviewed_unbound_higher_targets=reviewed_unbound_higher_targets, census_household_uprating=census_household_uprating, + area_region_codes=uk_area_region_codes(assignment.ladder), ) covered = { grain: set(values.astype(str).tolist()) for grain, values in assigned.items() @@ -1667,6 +1669,7 @@ def _joint_dry_run_plan( bound_national_target_ids=_national_contract_target_ids(national_registry), period=joint_inputs["calibration_year"], reviewed_unbound_higher_targets=joint_inputs["reviewed_unbound_higher_targets"], + area_region_codes=uk_area_region_codes(ladder), census_household_uprating=joint_inputs.get("census_household_uprating"), ) household = clone.frame.table("household") @@ -1847,6 +1850,7 @@ def _build_bound_problem( bound_national_target_ids=BOUND_NATIONAL_TARGETS, period=period, census_household_uprating=census_household_uprating, + area_region_codes=uk_area_region_codes(assignment.ladder), ) surface = surface.sort_values("area_code", kind="mergesort").reset_index(drop=True) targets = pd.DataFrame( diff --git a/tools/generate_uk_local_area_crosswalk.py b/tools/generate_uk_local_area_crosswalk.py index c35bd022e..2494a5015 100644 --- a/tools/generate_uk_local_area_crosswalk.py +++ b/tools/generate_uk_local_area_crosswalk.py @@ -11,6 +11,8 @@ import numpy as np +from microcosm.build.uk_runtime.geography_ladder import region_tier_by_area + DEFAULT_LADDER_ARTIFACT = Path("build/uk/uk_oa_ladder_2021.npz") DEFAULT_LADDER_SUMMARY = Path("build/uk/ladder_summary.json") DEFAULT_OUTPUT = Path( @@ -131,13 +133,19 @@ def _level_payload( ) -> dict[str, Any]: if code_column not in payload.files: raise ValueError(f"UK OA ladder artifact is missing {code_column!r}.") - area_ids = sorted({str(value) for value in np.asarray(payload[code_column])}) + if "region_code" not in payload.files: + raise ValueError("UK OA ladder artifact is missing 'region_code'.") + codes = np.asarray(payload[code_column]).astype(str) + area_ids = sorted(set(codes)) expected = EXPECTED_COUNTS[level] if len(area_ids) != expected: raise ValueError( f"UK OA ladder {level} roster has {len(area_ids)} area id(s), " f"expected {expected}." ) + region_code_by_area = region_tier_by_area( + codes, np.asarray(payload["region_code"]).astype(str), level=level + ) layers = metadata.get("layers") or {} layer = layers.get(ladder_layer) or {} ladder_vintage = str(layer.get("vintage") or "") @@ -172,6 +180,7 @@ def _level_payload( "expected_vintage": EXPECTED_FACT_VINTAGE[level], "area_count": len(area_ids), "area_ids": area_ids, + "region_code_by_area": region_code_by_area, } diff --git a/tools/generate_uk_target_references.py b/tools/generate_uk_target_references.py index 7e100e105..3b344d11a 100644 --- a/tools/generate_uk_target_references.py +++ b/tools/generate_uk_target_references.py @@ -23,6 +23,10 @@ ) from microcosm.build.uk_runtime.ledger_targets import UK_UPRATING_APPLIERS from microcosm.build.uk_runtime.uc_source_periods import uc_source_month_metadata +from microcosm.calibrate.geography_constants import ( + UK_REGION_TIER, + UK_REGION_TIER_ENUM, +) UK_GEOGRAPHY_IDS = { "uk": "K02000001", @@ -107,6 +111,8 @@ def main() -> None: config = TargetReferenceAuthoringConfig( target_period=args.period, geography_pins=_geography_pins(contract), + geography_fanout_by_target_id=_geography_fanout(contract), + geography_fanout_metadata=_geography_fanout_metadata, fanout_name=lambda target, fact: _fanout_name( target, fact, @@ -197,17 +203,103 @@ def _geography_pins(contract: Mapping[str, Any]) -> dict[str, dict[str, str]]: exists. Every other national target pins at country level. """ + fanned_out = _geography_fanout(contract) pins: dict[str, dict[str, str]] = {} for target in contract.get("targets", ()): + target_id = str(target["target_id"]) + if target_id in fanned_out: + # A two-level target takes its geographies from the region tier + # roster (microcosm#905); a single pin would collapse it back to + # the country row the roster replaces. + continue levels = tuple(str(level) for level in target.get("geography_levels") or ()) level = "region" if levels == ("region",) else "country" - pins[str(target["target_id"])] = { + pins[target_id] = { "geography_level": level, "geography_id": _geography_id_for_target(target), } return pins +#: The declared level set that fans out over the region tier instead of +#: pinning one country: a target that is published both nationally and by +#: region (ONS mid-year population by age band, VOA council-tax stock by band). +REGION_TIER_FANOUT_LEVELS = frozenset({"country", "region"}) + + +def _geography_fanout( + contract: Mapping[str, Any], +) -> dict[str, tuple[tuple[str, str], ...]]: + """Region-tier cells for every two-level (country + region) target. + + The nine English regions are always in; the three nations join only when + the binding does not already pin a country itself (the VOA stock bindings + filter ``country == ENGLAND`` because the Welsh, Scottish and Northern + Irish stocks are separate publications and contract families), so a + nation cell is never a row the binding would measure as zero. + """ + + fanout: dict[str, tuple[tuple[str, str], ...]] = {} + for target in contract.get("targets", ()): + levels = {str(level) for level in target.get("geography_levels") or ()} + if levels != REGION_TIER_FANOUT_LEVELS: + continue + cells = [(level, code) for level, code in UK_REGION_TIER if level == "region"] + if not _binding_pins_country(target["bindings"]["policyengine"]): + cells.extend( + (level, code) for level, code in UK_REGION_TIER if level == "country" + ) + fanout[str(target["target_id"])] = tuple(cells) + return fanout + + +def _binding_pins_country(binding: Mapping[str, Any]) -> bool: + predicates = [ + *binding.get("filters", ()), + *binding.get("household_conditions", ()), + ] + return any( + str(predicate.get("variable") or predicate.get("concept") or "") == "country" + for predicate in predicates + if isinstance(predicate, Mapping) + ) + + +def _geography_fanout_metadata( + target: Mapping[str, Any], + geography_level: str, + geography_id: str, + entity: str, +) -> dict[str, str]: + """Scope one region-tier row to its area on the spine. + + The predicate compares the household's ``region`` enum (FRS ``gvtregno`` + through ``REGION_MAP``) with the tier code's enum name and projects the + household match to the binding's own entity, the way the incumbent's + ``compute_regional_age`` masks persons by their household's region. The + ``cross_grain_grain`` stamp places every tier row, the three nation rows + included, at the ``region`` grain of the cross-grain rule; Chronicle's + ``country`` stamp on those three stays on the selector and the ledger + metadata untouched. + """ + + del target, geography_level + predicate = { + "entity": "household", + "variable": "region", + "operator": "==", + "value": UK_REGION_TIER_ENUM[geography_id], + "reduce": "any", + "map_to": entity, + } + return { + "geography_predicate": json.dumps( + predicate, sort_keys=True, separators=(",", ":") + ), + "cross_grain_grain": "region", + } + + SCOTGOV_COUNCIL_TAX_STOCK_PREFIX = "scotgov.council_tax_stock." # Target-id prefixes whose geography pins cannot come from the nation-substring @@ -508,10 +600,32 @@ def _add_uk_membership_accounting( "status": "active_declared_rows", "active_reference_count": council_tax_count, "signed_rationale": ( - "VOA (England and Wales) and Scottish Government CTAXBASE " - "(Scotland) council-tax stock bands are declared as nine " - "explicit target rows each, including total, and each resolves " - "with its country-level geography and band pin." + "VOA (England) and Scottish Government CTAXBASE (Scotland) " + "council-tax stock bands are declared as nine explicit target " + "rows each, including total. The Scottish rows resolve with " + "their country-level geography and band pin; the English rows " + "fan out over the nine English regions of the region tier " + "(microcosm#905), each cell resolving VOA's region-stamped " + "band count with the same band pin." + ), + }, + { + "family": "ons_population", + "status": "active_region_tier_fanout", + "active_reference_count": sum( + 1 + for reference in references + if reference["metadata"]["contract_target_id"].endswith("_by_region") + ), + "signed_rationale": ( + "The nine ONS population-by-age-band targets fan out over the " + "twelve-area region tier (nine English regions at Chronicle's " + "region level, Wales, Scotland and Northern Ireland at country " + "level), one reference per area, each scoped on the spine by " + "a household-region predicate and placed at the region grain " + "of the cross-grain rule (microcosm#905). The former single " + "UK-wide row per band is retired: the tier sums to it within " + "the same publication." ), }, ]