From 241bf00be5722c2bdd8dbf1b1b23ae65b7efb5fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 00:41:05 +0200 Subject: [PATCH 01/11] Floor the uk extra at policyengine-uk>=2.93 and lock 2.94.0 (#834) policyengine-uk 2.93.0 adds the person-level tax_free_childcare_spend_routed_share input and 2.92.2 applies the Tax-Free Childcare rate to the gross payment; the port of uk-data #473/#474 needs both. 2.94.0 is the release the free-childcare dashboard was measured on. The frame and data shards' uk extras had drifted back to >=2.88 after #811; all three shards now agree on >=2.93. Co-Authored-By: Claude Fable 5.1 --- changelog.d/uk-engine-floor-834.changed.md | 1 + packages/microcosm-build/pyproject.toml | 2 +- packages/microcosm-data/pyproject.toml | 2 +- packages/microcosm-frame/pyproject.toml | 2 +- uv.lock | 12 ++++++------ 5 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 changelog.d/uk-engine-floor-834.changed.md diff --git a/changelog.d/uk-engine-floor-834.changed.md b/changelog.d/uk-engine-floor-834.changed.md new file mode 100644 index 000000000..dc0d7c846 --- /dev/null +++ b/changelog.d/uk-engine-floor-834.changed.md @@ -0,0 +1 @@ +Floor the uk extra at policyengine-uk>=2.93 and lock 2.94.0, the first release that defines `tax_free_childcare_spend_routed_share` and applies the gross-side Tax-Free Childcare rate (#834). diff --git a/packages/microcosm-build/pyproject.toml b/packages/microcosm-build/pyproject.toml index 48d478366..4747035cb 100644 --- a/packages/microcosm-build/pyproject.toml +++ b/packages/microcosm-build/pyproject.toml @@ -39,7 +39,7 @@ us = [ # The UK extra adds the rules engine for local metric generation from a # Microcosm UK H5. Target tables remain explicit inputs, and the base package # still does not import policyengine-uk at import time. -uk = ["policyengine-uk>=2.92", "h5py>=3", "tables>=3"] +uk = ["policyengine-uk>=2.93", "h5py>=3", "tables>=3"] [project.scripts] microcosm-export-us-l0-refit-h5 = "microcosm.build.us_runtime.l0_refit_export:main" diff --git a/packages/microcosm-data/pyproject.toml b/packages/microcosm-data/pyproject.toml index 6ef7d481b..5f5e27ba9 100644 --- a/packages/microcosm-data/pyproject.toml +++ b/packages/microcosm-data/pyproject.toml @@ -28,7 +28,7 @@ us = ["policyengine-us>=1.745.0,<2"] # The UK artifact lives in a PRIVATE repo (UK Data Service licence): loads # require an authenticated HF token with access. The loader surfaces the # 401 with that explanation rather than retrying. -uk = ["policyengine-uk>=2.88"] +uk = ["policyengine-uk>=2.93"] [project.urls] Homepage = "https://microcosm.institute" diff --git a/packages/microcosm-frame/pyproject.toml b/packages/microcosm-frame/pyproject.toml index 359ea4f23..70822aebf 100644 --- a/packages/microcosm-frame/pyproject.toml +++ b/packages/microcosm-frame/pyproject.toml @@ -16,7 +16,7 @@ microcosm-graph = { workspace = true } [project.optional-dependencies] us = ["microunit>=0.1.0"] policyengine = ["policyengine-us>=1.745.0,<2", "microunit>=0.1.0"] -uk = ["policyengine-uk>=2.88"] +uk = ["policyengine-uk>=2.93"] # The Axiom adapter's PyPI-resolvable dependencies. The engine itself # (axiom-rules-engine + its dense native extension) is not on PyPI yet and # installs from a checkout; see microcosm/frame/adapters/axiom.py. diff --git a/uv.lock b/uv.lock index b3bfb8926..177c79099 100644 --- a/uv.lock +++ b/uv.lock @@ -780,7 +780,7 @@ requires-dist = [ { name = "microunit", marker = "extra == 'us'", specifier = ">=0.1.0" }, { name = "numpy", specifier = ">=1.26" }, { name = "pandas", specifier = ">=2" }, - { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.92" }, + { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.93" }, { name = "policyengine-us", marker = "extra == 'us'", specifier = ">=1.745.0,<2" }, { name = "pyarrow", specifier = ">=15" }, { name = "pyyaml", specifier = ">=6" }, @@ -853,7 +853,7 @@ requires-dist = [ { name = "h5py", specifier = ">=3" }, { name = "huggingface-hub", specifier = ">=0.20" }, { name = "packaging", specifier = ">=24" }, - { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.88" }, + { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.93" }, { name = "policyengine-us", marker = "extra == 'us'", specifier = ">=1.745.0,<2" }, ] provides-extras = ["us", "uk"] @@ -931,7 +931,7 @@ requires-dist = [ { name = "microunit", marker = "extra == 'us'", specifier = ">=0.1.0" }, { name = "numpy", specifier = ">=2" }, { name = "pandas", specifier = ">=2.3" }, - { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.88" }, + { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.93" }, { name = "policyengine-us", marker = "extra == 'policyengine'", specifier = ">=1.745.0,<2" }, { name = "tables", marker = "extra == 'axiom'", specifier = ">=3" }, ] @@ -1494,7 +1494,7 @@ wheels = [ [[package]] name = "policyengine-uk" -version = "2.92.1" +version = "2.94.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "microdf-python" }, @@ -1502,9 +1502,9 @@ dependencies = [ { name = "pydantic" }, { name = "tables" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/55/ad/753fc50a4479d9670cb27b9db3c728bc377d4bbd44464858fec4c1b3df61/policyengine_uk-2.92.1.tar.gz", hash = "sha256:204792cebd1c916c5201f3bfbd1e7cc638bf67cb1aa893ee8456b90853e3f69f", size = 1243396, upload-time = "2026-08-28T12:05:48.065Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ab/55/8553c4d71f74ea56431eff96144b86a899f36ea1ec71dc797ccc8b07b930/policyengine_uk-2.94.0.tar.gz", hash = "sha256:85edac86c05cb3583e2eec265b44674beb3ea2553fba7e1a8bfc9d117c4c2e24", size = 1255741, upload-time = "2026-08-30T13:39:32.301Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/36/b9/e52246d4f8ed11fe394de9a0de7ca457c6c01282814b7495612d628d166c/policyengine_uk-2.92.1-py3-none-any.whl", hash = "sha256:056fa8c9e2813094ca3c4761df89047374256a7acf8b88de22ddba0a94deb175", size = 2042832, upload-time = "2026-08-28T12:05:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/97/91/330552ab3bfc6457505edb7ed34fab18bd055da3455389196e840f795451/policyengine_uk-2.94.0-py3-none-any.whl", hash = "sha256:327f8af96e92af20cac4978129006f967515b6405ab76674b26929b1aba5438d", size = 2054879, upload-time = "2026-08-30T13:39:30.5Z" }, ] [[package]] From de661bd3470cc656c115ed47dae22fa6b923990c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 04:15:07 +0200 Subject: [PATCH 02/11] Re-pin the UK target surfaces to Chronicle 6fb700e and repair the contract they compile against (#834, #789 I0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The committed national surface was generated on a Chronicle feed (226358e7, 107,550 rows) the local census no longer pinned (33ca98a, 108,112 rows); on the pinned feed 19 references failed to compile and the calibration runner refused to run. Both surfaces now pin one feed built from Chronicle main 6fb700e (128,717 rows, facts 6ae49d7d…, manifest dcda51d6…, artifact schema v2), and the runner refuses any other feed unless --allow-unpinned-feed is passed and recorded. What the re-pin surfaced and how the contract answers it: - The #239 UC crosses share source_concept and groupby_dimension with the base family-type and number-of-children tables; the composition rows now pin their exact dimension key set, and the generator no longer reads a `dimensions` list as a sum trigger. - The caseload row keeps binding DWP UC deductions statistics Table 1 (measure total_units, month groupby): its April–December 2025 calendar-year average is 6,758,889, the value #735 recorded; the Stat-Xplore family-type sum runs 1.45% above it (chronicle#247 asks for the cube's Total row). - The CGT totals pin Table 1; Table 5's UK rows carry the same concepts. - Every dwp_universal_credit row is a calendar-year average (one temporal basis): the 100 payment-band rows move from the May-2025 snapshot to the 2025 mean, and the Scotland youngest-child row is re-bound at benefit-unit grain. - ons.population.scotland_households_3plus_children is signed out (its selector reaches person-level mid-year population rows; #736). - The local private-rent deferral private_rent_pipr_after_target_period is stale since #231 extended PIPR to 2023–2026: the 314 rows bind the 2025 calendar-year average (12 members each). Local active references 19,618 -> 19,932. - The nine scotgov council-tax bands restore themselves (#231's measure-id fix). Regenerated with the repository tools: national and local references and membership, the local census and validation levels, both compile-parity receipts, the feed-row fixture. A hermetic test regenerates the surfaces from the pinned identity and skips only when the feed is absent. docs/uk-chronicle-feed-repin.md records the procedure. Codex implemented increment I0 of the #834 plan under the approved-plan protocol; reviewed section by section, source_repo restored to the canonical PolicyEngine/chronicle, census regenerated. Co-Authored-By: Claude Fable 5.1 --- changelog.d/uk-chronicle-repin-834.changed.md | 4 + docs/uk-chronicle-feed-repin.md | 26 + experiments/834-childcare-tfc-receipts.md | 93 + .../build/target_reference_authoring.py | 4 + ...ity_incumbent_2025_signed_differences.json | 240 +- ...ty_production_2023_signed_differences.json | 4 +- .../uk/local_target_reference_membership.json | 7026 ++++++++++----- .../build/uk/local_target_references.json | 7850 +++++++++++++++++ .../build/uk/local_validation_levels.json | 7 +- .../build/uk/target_reference_membership.json | 1393 ++- .../microcosm/build/uk/target_references.json | 773 +- .../build/uk/uk_local_target_census.json | 40 +- .../build/uk/uk_population_targets.json | 78 +- .../build/uk_runtime/local_target_census.py | 7 +- .../uk_runtime/local_validation_levels.py | 2 +- .../uk_target_reference_feed_rows.jsonl | 13 + .../tests/test_uk_battery_bindings.py | 6 +- .../tests/test_uk_calibration_seam_driver.py | 46 +- .../tests/test_uk_local_target_census.py | 5 +- .../tests/test_uk_national_calibration.py | 20 +- .../tests/test_uk_pipr_deferrals.py | 37 +- .../tests/test_uk_population_targets.py | 4 + .../tests/test_uk_target_references.py | 232 +- tools/calibrate_uk_national_dataset.py | 45 +- tools/generate_uk_local_target_references.py | 35 +- tools/generate_uk_target_references.py | 69 +- tools/score_uk_local_candidate.py | 2 +- 27 files changed, 14721 insertions(+), 3340 deletions(-) create mode 100644 changelog.d/uk-chronicle-repin-834.changed.md create mode 100644 docs/uk-chronicle-feed-repin.md create mode 100644 experiments/834-childcare-tfc-receipts.md diff --git a/changelog.d/uk-chronicle-repin-834.changed.md b/changelog.d/uk-chronicle-repin-834.changed.md new file mode 100644 index 000000000..80dc4cc8c --- /dev/null +++ b/changelog.d/uk-chronicle-repin-834.changed.md @@ -0,0 +1,4 @@ +Re-pin the UK national and local target surfaces to the Chronicle `6fb700e` +consumer artifact, tighten Universal Credit and CGT selectors, align Universal +Credit rows on 2025 calendar-year averages, and activate the available PIPR +local rent rows on the same temporal basis. diff --git a/docs/uk-chronicle-feed-repin.md b/docs/uk-chronicle-feed-repin.md new file mode 100644 index 000000000..689d8072c --- /dev/null +++ b/docs/uk-chronicle-feed-repin.md @@ -0,0 +1,26 @@ +# Re-pin the UK Chronicle consumer feed + +The national and local target surfaces must always use one reviewed Chronicle +consumer artifact. Rebuild the UK bundle and consumer artifact in +`PolicyEngine/arch-data`, then copy the resulting `consumer_facts.jsonl` and +`manifest.json` into `.codex-work/consumer_facts_uk.jsonl` and +`.codex-work/consumer_facts_uk_manifest.json`. Do not commit either +file. + +Verify both SHA-256 digests and the manifest's `facts_sha256`, row count, and +schema version. Update `_LEDGER_FACT_FEED_PIN` in +`uk_runtime/local_target_census.py`, the local validation-level pin, and their +tests together. Regenerate the local census with +`uv run --no-sync python tools/census_uk_local_targets.py`. + +Regenerate the national and local reference surfaces from the same fact file +with `tools/generate_uk_target_references.py` and +`tools/generate_uk_local_target_references.py`, then rebuild the signed compile +parity receipts with +`tools/build_uk_ledger_compile_parity_signed_differences.py`. The hermetic +regeneration test accepts either the default `.codex-work` files or a +`CHRONICLE_UK_FACTS` override and skips only when neither is present. + +The calibration runner refuses a feed whose facts digest differs from the +committed pin. `--allow-unpinned-feed` is an explicit diagnostic override and +is recorded in the run manifest; it is not a re-pin procedure. diff --git a/experiments/834-childcare-tfc-receipts.md b/experiments/834-childcare-tfc-receipts.md new file mode 100644 index 000000000..0c30e6668 --- /dev/null +++ b/experiments/834-childcare-tfc-receipts.md @@ -0,0 +1,93 @@ +# #834 / #789 receipts — childcare and Tax-Free Childcare port, Chronicle re-pin, bus targets + +Plan: `repos/uk-834-childcare-tfc-port-plan.md` (canonical, María's rulings A0–A20). Licensed +evidence lives under `data/ukds/acceptance/834-childcare-tfc/` (SDC-safe aggregates, minimum +cell count 3); this file carries the committed, digest-pinned receipts the PR's signed entries +anchor to. + +## Part A — Chronicle feed re-pin (increment I0) + +Feed rebuilt from Chronicle `PolicyEngine/chronicle` main `6fb700e` (2026-09-04; carries #220 +childcare, #231 the recovered #202, #239 the UC crosses / Child Benefit / census composition) +with `chronicle build-bundle --suite uk` → `build-consumer-artifact`: + +| | value | +|---|---| +| `consumer_facts.jsonl` sha256 | `6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f` | +| `manifest.json` sha256 | `dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0` | +| rows / schema | 128 717 / `policyengine_ledger.consumer_artifact.v2` | +| previous pin | `33ca98a` / `4395a4e7…`, 108 112 rows (local census); the national surface had been generated on `226358e7…`, 107 550 rows | + +### Why the re-pin had to repair the contract (plan §5c) + +On the previously pinned feed the committed national surface did not compile: 19 references +unsupported (`compile_uk_target_registry`), which `tools/calibrate_uk_national_dataset.py` +refuses. On the rebuilt feed, 12 were unsupported before the I0 corrections. After I0: + +| surface | before (committed) | after I0 on `6ae49d7d…` | +|---|---|---| +| national membership | active 408, multi_fact 1, no_fact 7, signed_excluded 1 | **active 408**, no_fact 7, signed_excluded 2 | +| national runtime compile | 389 compiled / 19 unsupported on the pinned feed | **408 compiled / 0 unsupported** | +| local membership | active 19 618, no_fact_at_or_before_period 314, no_fact_for_area 1 586, compile_error 1 | **active 19 932**, no_fact_for_area 1 586, compile_error 1 (the signed `E14001416` SPI mean) | + +Corrections (each a declaration, verified by the regeneration test and the runtime compile): + +- UC composition rows (`dwp.uc.households_{single,couple}_{no,with}_children`, + `_children_{1..5_or_more}`): exact dimension-key pins (`dimensions: [family_type]` / + `[number_of_children]`), so the #239 child-entitlement and payment-indicator crosses no + longer match; the generator's sum inference no longer treats a `dimensions` list as a sum. +- Caseload `dwp.uc.households`: `source_measure_id: total_units` + + `groupby_dimension: dwp.uc_deductions_month` → binds DWP UC deductions statistics Table 1 + only; calendar-year average over April–December 2025 = **6 758 889** (the #735 value), + 1.45% below the Stat-Xplore family-type sum 6 858 287 (chronicle#247 asks for the + cube's Total row). +- CGT totals: `groupby_dimension: hmrc.cgt_table1_line` (Table 5's UK rows carried the same + concepts and values, £127.316bn gains at TY2024). +- One temporal basis for `dwp_universal_credit`: every row is a calendar-year average; the 100 + payment-band rows move from the May-2025 snapshot to the 2025 mean; the Scotland + youngest-child row is re-bound at benefit-unit grain (`youngest_child_age < 1`). +- `ons.population.scotland_households_3plus_children` signed-excluded (its selector reaches + person-level mid-year population rows; #736). +- Local `ons.rent.private_rent`: the stale deferral `private_rent_pipr_after_target_period` + retired; 314 rows bind the calendar-year average of the 2025 PIPR months (12 members each). +- Feed guard: the calibration runner refuses a feed whose facts digest differs from the + committed pin (`--allow-unpinned-feed` is a recorded diagnostic override); a hermetic test + regenerates the surfaces from the pinned identity and skips only when the feed is absent. + +## Part B — Licensed before-receipts (L0, L1) + +All at design weights on full-scale spines (52 846 households, 113 626 persons, 61 234 benefit +units), engine policyengine-uk 2.94.0 for the receipts. + +### L0 — spine-n (main `47c74225` + #842 + #850, built at 2.92.1), read at 2.94.0 + +`l0_spine_n_childcare_receipt.json`. The routed share reads its engine default (1.0): the column +is absent from the spine. + +| row (model / fact) | 2024 basis (FY2024-25 / Jan-2024; extended Jan-2025 ages 2–4) | 2025 basis (FY2025-26 / Jan-2025) | +|---|---|---| +| TFC spending (£0.6322bn / £0.5998bn) | 1.073× | 1.174× | +| TFC children (1 085 020 / 1 151 515) | 1.020× | 0.951× | +| Working-parent children ages 2–4, England (621 482) | 1.283× | 1.261× | +| Early learning 2-year-olds, England (115 852 / 95 031) | 0.596× | 0.738× | +| Universal-only children, England (416 537 / 396 965) | 1.104× | 1.177× | + +### L1 — engine-only twin (branch `eb8abcdd`: floor ≥2.93, lock 2.94.0; no new column) + +`l1-engine-twin/l1-engine.h5`, 28 stages, spine battery 15/15. Payload against spine-n +(`l1_vs_spine_n_payload.json`): benunit and time_period tables byte-equal; person differs only +in `student_loan_balance` (26 rows); household differs in 37 columns — the WAS, LCFS, ETB, +property and consumption outputs of the QRF stages whose predictors include +`household_net_income` (which carries `tax_free_childcare`, moved by 2.92.2's gross-rate +arithmetic). No income, benefit or childcare input column moves. The childcare receipt on L1 +(`l1_engine_childcare_receipt.json`) is identical to L0. + +## Part C — column twin (L2), release round trip (L3), re-fit (L5), composition (L4) + +Pending the Lane A/B increments. + +## Part D — bus (#789) + +E9's Part D (`experiments/685-net-new-stages-receipts.md`) is the sizing evidence: at design +weights England fares 0.56× BUS05ai and net support 0.71× BUS05bi; London 0.28×; England outside +London 0.74× / 0.97×; the LCFS fare gradient runs against NTS0705a (#790's disposition). 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 7629404be..64543c053 100644 --- a/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py +++ b/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py @@ -99,6 +99,9 @@ class AreaTargetReferenceAuthoringConfig: selector_pins_by_target_id: Mapping[str, Mapping[str, Any]] = field( default_factory=dict ) + reference_metadata_by_target_id: Mapping[str, Mapping[str, str]] = field( + default_factory=dict + ) binding_vocabulary: frozenset[str] = frozenset() source_fact_feed: str = "" @@ -538,6 +541,7 @@ def _area_reference_row( "measure_kind": "prepared_column", "geography_level": geography_level, "geography_id": area_id, + **dict(config.reference_metadata_by_target_id.get(target_id, {})), }, } assertion_policy = target.get("assertion_policy") 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 ab237d33e..3bfe535bc 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": 408, "counts_by_kind": { - "calibration_drift": 170, + "calibration_drift": 172, "fixture_only": 267, "ledger_only": 38 }, - "difference_count": 475, + "difference_count": 477, "differences": [ { "fixture_value": 1608000.0, @@ -2161,7 +2161,7 @@ { "fixture_value": 1222944.0, "kind": "calibration_drift", - "ledger_value": 1269512.0, + "ledger_value": 1278537.0, "name": "dwp.uc.households_children_1", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2169,7 +2169,7 @@ { "fixture_value": 1058967.0, "kind": "calibration_drift", - "ledger_value": 1103880.0, + "ledger_value": 1100617.5555555555, "name": "dwp.uc.households_children_2", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2177,7 +2177,7 @@ { "fixture_value": 473500.0, "kind": "calibration_drift", - "ledger_value": 497665.0, + "ledger_value": 494553.22222222225, "name": "dwp.uc.households_children_3", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2185,7 +2185,7 @@ { "fixture_value": 166790.0, "kind": "calibration_drift", - "ledger_value": 176202.0, + "ledger_value": 174668.88888888888, "name": "dwp.uc.households_children_4", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2193,7 +2193,7 @@ { "fixture_value": 75910.0, "kind": "calibration_drift", - "ledger_value": 77894.0, + "ledger_value": 77376.77777777778, "name": "dwp.uc.households_children_5_or_more", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2201,7 +2201,7 @@ { "fixture_value": 231368.0, "kind": "calibration_drift", - "ledger_value": 266160.0, + "ledger_value": 284345.55555555556, "name": "dwp.uc.households_couple_no_children", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2209,7 +2209,7 @@ { "fixture_value": 839379.0, "kind": "calibration_drift", - "ledger_value": 911392.0, + "ledger_value": 899534.6666666666, "name": "dwp.uc.households_couple_with_children", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2217,7 +2217,7 @@ { "fixture_value": 2868011.0, "kind": "calibration_drift", - "ledger_value": 3191316.0, + "ledger_value": 3446962.0, "name": "dwp.uc.households_single_no_children", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2225,7 +2225,7 @@ { "fixture_value": 2156879.0, "kind": "calibration_drift", - "ledger_value": 2213760.0, + "ledger_value": 2226220.0, "name": "dwp.uc.households_single_with_children", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2233,7 +2233,7 @@ { "fixture_value": 14000.0, "kind": "calibration_drift", - "ledger_value": 14412.0, + "ledger_value": 14333.222222222223, "name": "dwp.uc.scotland_households_child_under_1", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2241,7 +2241,7 @@ { "fixture_value": 7610.0, "kind": "calibration_drift", - "ledger_value": 7553.0, + "ledger_value": 7506.333333333333, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_0_to_1_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2249,7 +2249,7 @@ { "fixture_value": 12370.0, "kind": "calibration_drift", - "ledger_value": 12318.0, + "ledger_value": 13313.333333333334, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_10_800_to_12_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2257,7 +2257,7 @@ { "fixture_value": 15175.0, "kind": "calibration_drift", - "ledger_value": 15096.0, + "ledger_value": 16121.444444444445, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_12_000_to_13_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2265,7 +2265,7 @@ { "fixture_value": 12297.0, "kind": "calibration_drift", - "ledger_value": 12422.0, + "ledger_value": 13317.333333333334, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_13_200_to_14_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2273,7 +2273,7 @@ { "fixture_value": 17828.0, "kind": "calibration_drift", - "ledger_value": 17851.0, + "ledger_value": 19657.333333333332, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_14_400_to_15_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2281,7 +2281,7 @@ { "fixture_value": 14427.0, "kind": "calibration_drift", - "ledger_value": 14493.0, + "ledger_value": 16443.222222222223, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_15_600_to_16_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2289,7 +2289,7 @@ { "fixture_value": 11892.0, "kind": "calibration_drift", - "ledger_value": 11914.0, + "ledger_value": 13441.111111111111, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_16_800_to_18_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2297,7 +2297,7 @@ { "fixture_value": 9463.0, "kind": "calibration_drift", - "ledger_value": 9478.0, + "ledger_value": 10728.555555555555, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_18_000_to_19_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2305,7 +2305,7 @@ { "fixture_value": 8443.0, "kind": "calibration_drift", - "ledger_value": 8479.0, + "ledger_value": 9653.222222222223, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_19_200_to_20_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2313,7 +2313,7 @@ { "fixture_value": 8906.0, "kind": "calibration_drift", - "ledger_value": 8732.0, + "ledger_value": 8797.0, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_1_200_to_2_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2321,7 +2321,7 @@ { "fixture_value": 5770.0, "kind": "calibration_drift", - "ledger_value": 5764.0, + "ledger_value": 6486.888888888889, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_20_400_to_21_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2329,7 +2329,7 @@ { "fixture_value": 3485.0, "kind": "calibration_drift", - "ledger_value": 3525.0, + "ledger_value": 3981.8888888888887, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_21_600_to_22_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2337,7 +2337,7 @@ { "fixture_value": 2360.0, "kind": "calibration_drift", - "ledger_value": 2356.0, + "ledger_value": 2761.4444444444443, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_22_800_to_24_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2345,7 +2345,7 @@ { "fixture_value": 1815.0, "kind": "calibration_drift", - "ledger_value": 1797.0, + "ledger_value": 2131.222222222222, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_24_000_to_25_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2353,7 +2353,7 @@ { "fixture_value": 1186.0, "kind": "calibration_drift", - "ledger_value": 1214.0, + "ledger_value": 1475.3333333333333, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_25_200_to_26_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2361,7 +2361,7 @@ { "fixture_value": 935.0, "kind": "calibration_drift", - "ledger_value": 958.0, + "ledger_value": 1073.7777777777778, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_26_400_to_27_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2369,7 +2369,7 @@ { "fixture_value": 632.0, "kind": "calibration_drift", - "ledger_value": 654.0, + "ledger_value": 746.3333333333334, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_27_600_to_28_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2377,7 +2377,7 @@ { "fixture_value": 580.0, "kind": "calibration_drift", - "ledger_value": 578.0, + "ledger_value": 605.7777777777778, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_28_800_to_30_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2385,7 +2385,7 @@ { "fixture_value": 11750.0, "kind": "calibration_drift", - "ledger_value": 11606.0, + "ledger_value": 12256.0, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2393,7 +2393,7 @@ { "fixture_value": 10802.0, "kind": "calibration_drift", - "ledger_value": 10672.0, + "ledger_value": 10945.444444444445, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_3_600_to_4_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2401,7 +2401,7 @@ { "fixture_value": 12168.0, "kind": "calibration_drift", - "ledger_value": 12199.0, + "ledger_value": 12492.444444444445, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_4_800_to_6_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2409,7 +2409,7 @@ { "fixture_value": 12461.0, "kind": "calibration_drift", - "ledger_value": 12405.0, + "ledger_value": 12979.666666666666, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_6_000_to_7_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2417,7 +2417,7 @@ { "fixture_value": 15787.0, "kind": "calibration_drift", - "ledger_value": 15632.0, + "ledger_value": 16484.444444444445, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_7_200_to_8_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2425,7 +2425,7 @@ { "fixture_value": 14248.0, "kind": "calibration_drift", - "ledger_value": 14298.0, + "ledger_value": 15272.444444444445, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_8_400_to_9_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2433,7 +2433,7 @@ { "fixture_value": 17559.0, "kind": "calibration_drift", - "ledger_value": 17626.0, + "ledger_value": 19142.333333333332, "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_9_600_to_10_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2441,7 +2441,7 @@ { "fixture_value": 18714.0, "kind": "calibration_drift", - "ledger_value": 18896.0, + "ledger_value": 19073.555555555555, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2449,7 +2449,7 @@ { "fixture_value": 42188.0, "kind": "calibration_drift", - "ledger_value": 41858.0, + "ledger_value": 40805.444444444445, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2457,7 +2457,7 @@ { "fixture_value": 41520.0, "kind": "calibration_drift", - "ledger_value": 41349.0, + "ledger_value": 40009.555555555555, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_12_000_to_13_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2465,7 +2465,7 @@ { "fixture_value": 41159.0, "kind": "calibration_drift", - "ledger_value": 40850.0, + "ledger_value": 39972.555555555555, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_13_200_to_14_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2473,7 +2473,7 @@ { "fixture_value": 42515.0, "kind": "calibration_drift", - "ledger_value": 42101.0, + "ledger_value": 40518.77777777778, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_14_400_to_15_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2481,7 +2481,7 @@ { "fixture_value": 38527.0, "kind": "calibration_drift", - "ledger_value": 38379.0, + "ledger_value": 37118.0, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_15_600_to_16_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2489,7 +2489,7 @@ { "fixture_value": 38894.0, "kind": "calibration_drift", - "ledger_value": 38725.0, + "ledger_value": 37177.77777777778, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_16_800_to_18_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2497,7 +2497,7 @@ { "fixture_value": 38659.0, "kind": "calibration_drift", - "ledger_value": 38124.0, + "ledger_value": 37164.555555555555, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_18_000_to_19_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2505,7 +2505,7 @@ { "fixture_value": 34318.0, "kind": "calibration_drift", - "ledger_value": 33871.0, + "ledger_value": 33309.555555555555, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_19_200_to_20_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2513,7 +2513,7 @@ { "fixture_value": 22489.0, "kind": "calibration_drift", - "ledger_value": 22614.0, + "ledger_value": 22775.777777777777, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_1_200_to_2_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2521,7 +2521,7 @@ { "fixture_value": 30116.0, "kind": "calibration_drift", - "ledger_value": 29950.0, + "ledger_value": 29102.555555555555, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_20_400_to_21_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2529,7 +2529,7 @@ { "fixture_value": 28519.0, "kind": "calibration_drift", - "ledger_value": 28186.0, + "ledger_value": 27534.666666666668, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_21_600_to_22_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2537,7 +2537,7 @@ { "fixture_value": 26014.0, "kind": "calibration_drift", - "ledger_value": 25960.0, + "ledger_value": 25584.777777777777, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_22_800_to_24_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2545,7 +2545,7 @@ { "fixture_value": 23159.0, "kind": "calibration_drift", - "ledger_value": 23231.0, + "ledger_value": 22927.777777777777, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_24_000_to_25_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2553,7 +2553,7 @@ { "fixture_value": 20618.0, "kind": "calibration_drift", - "ledger_value": 20598.0, + "ledger_value": 20334.666666666668, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_25_200_to_26_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2561,7 +2561,7 @@ { "fixture_value": 17493.0, "kind": "calibration_drift", - "ledger_value": 17650.0, + "ledger_value": 17535.0, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_26_400_to_27_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2569,7 +2569,7 @@ { "fixture_value": 15437.0, "kind": "calibration_drift", - "ledger_value": 15499.0, + "ledger_value": 15399.888888888889, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_27_600_to_28_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2577,7 +2577,7 @@ { "fixture_value": 12836.0, "kind": "calibration_drift", - "ledger_value": 12912.0, + "ledger_value": 12836.222222222223, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2585,7 +2585,7 @@ { "fixture_value": 26734.0, "kind": "calibration_drift", - "ledger_value": 26768.0, + "ledger_value": 26502.666666666668, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_2_400_to_3_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2593,7 +2593,7 @@ { "fixture_value": 29189.0, "kind": "calibration_drift", - "ledger_value": 29288.0, + "ledger_value": 29027.0, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2601,15 +2601,23 @@ { "fixture_value": 33137.0, "kind": "calibration_drift", - "ledger_value": 33072.0, + "ledger_value": 32427.0, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, + { + "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": "Ledger-compiled value differs from the fixture value at this comparison period." + }, { "fixture_value": 38338.0, "kind": "calibration_drift", - "ledger_value": 38337.0, + "ledger_value": 37410.77777777778, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2617,7 +2625,7 @@ { "fixture_value": 40685.0, "kind": "calibration_drift", - "ledger_value": 40556.0, + "ledger_value": 39910.333333333336, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2625,7 +2633,7 @@ { "fixture_value": 40564.0, "kind": "calibration_drift", - "ledger_value": 40399.0, + "ledger_value": 39368.0, "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2633,7 +2641,7 @@ { "fixture_value": 24639.0, "kind": "calibration_drift", - "ledger_value": 24828.0, + "ledger_value": 26670.222222222223, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_0_to_1_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2641,7 +2649,7 @@ { "fixture_value": 126949.0, "kind": "calibration_drift", - "ledger_value": 125466.0, + "ledger_value": 123718.11111111111, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_10_800_to_12_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2649,7 +2657,7 @@ { "fixture_value": 131129.0, "kind": "calibration_drift", - "ledger_value": 129699.0, + "ledger_value": 125798.44444444444, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_12_000_to_13_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2657,7 +2665,7 @@ { "fixture_value": 131289.0, "kind": "calibration_drift", - "ledger_value": 129699.0, + "ledger_value": 129133.66666666667, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_13_200_to_14_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2665,7 +2673,7 @@ { "fixture_value": 119355.0, "kind": "calibration_drift", - "ledger_value": 117812.0, + "ledger_value": 115856.66666666667, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_14_400_to_15_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2673,7 +2681,7 @@ { "fixture_value": 130802.0, "kind": "calibration_drift", - "ledger_value": 128991.0, + "ledger_value": 125660.22222222222, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_15_600_to_16_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2681,7 +2689,7 @@ { "fixture_value": 141848.0, "kind": "calibration_drift", - "ledger_value": 139675.0, + "ledger_value": 135836.77777777778, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_16_800_to_18_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2689,7 +2697,7 @@ { "fixture_value": 136835.0, "kind": "calibration_drift", - "ledger_value": 134650.0, + "ledger_value": 135444.88888888888, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_18_000_to_19_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2697,7 +2705,7 @@ { "fixture_value": 107556.0, "kind": "calibration_drift", - "ledger_value": 106818.0, + "ledger_value": 106341.88888888889, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_19_200_to_20_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2705,7 +2713,7 @@ { "fixture_value": 34670.0, "kind": "calibration_drift", - "ledger_value": 34587.0, + "ledger_value": 36208.11111111111, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_1_200_to_2_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2713,7 +2721,7 @@ { "fixture_value": 86616.0, "kind": "calibration_drift", - "ledger_value": 86255.0, + "ledger_value": 85490.44444444444, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_20_400_to_21_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2721,7 +2729,7 @@ { "fixture_value": 80294.0, "kind": "calibration_drift", - "ledger_value": 80273.0, + "ledger_value": 80226.88888888889, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_21_600_to_22_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2729,7 +2737,7 @@ { "fixture_value": 70309.0, "kind": "calibration_drift", - "ledger_value": 70319.0, + "ledger_value": 71259.55555555556, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_22_800_to_24_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2737,7 +2745,7 @@ { "fixture_value": 50510.0, "kind": "calibration_drift", - "ledger_value": 50805.0, + "ledger_value": 51301.666666666664, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_24_000_to_25_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2745,7 +2753,7 @@ { "fixture_value": 42522.0, "kind": "calibration_drift", - "ledger_value": 43132.0, + "ledger_value": 43305.22222222222, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_25_200_to_26_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2753,7 +2761,7 @@ { "fixture_value": 33508.0, "kind": "calibration_drift", - "ledger_value": 34342.0, + "ledger_value": 34910.555555555555, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_26_400_to_27_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2761,7 +2769,7 @@ { "fixture_value": 27063.0, "kind": "calibration_drift", - "ledger_value": 27650.0, + "ledger_value": 28513.0, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_27_600_to_28_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2769,7 +2777,7 @@ { "fixture_value": 21663.0, "kind": "calibration_drift", - "ledger_value": 22058.0, + "ledger_value": 22593.0, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_28_800_to_30_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2777,7 +2785,7 @@ { "fixture_value": 43623.0, "kind": "calibration_drift", - "ledger_value": 43550.0, + "ledger_value": 46312.77777777778, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_2_400_to_3_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2785,7 +2793,7 @@ { "fixture_value": 55622.0, "kind": "calibration_drift", - "ledger_value": 55560.0, + "ledger_value": 60310.11111111111, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_3_600_to_4_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2793,7 +2801,7 @@ { "fixture_value": 67901.0, "kind": "calibration_drift", - "ledger_value": 68058.0, + "ledger_value": 67858.66666666667, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_4_800_to_6_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2801,7 +2809,7 @@ { "fixture_value": 89314.0, "kind": "calibration_drift", - "ledger_value": 89174.0, + "ledger_value": 89577.44444444444, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_6_000_to_7_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2809,7 +2817,7 @@ { "fixture_value": 118641.0, "kind": "calibration_drift", - "ledger_value": 117236.0, + "ledger_value": 116076.0, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_7_200_to_8_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2817,7 +2825,7 @@ { "fixture_value": 99069.0, "kind": "calibration_drift", - "ledger_value": 98877.0, + "ledger_value": 97511.0, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_8_400_to_9_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2825,7 +2833,7 @@ { "fixture_value": 102251.0, "kind": "calibration_drift", - "ledger_value": 102069.0, + "ledger_value": 102343.0, "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_9_600_to_10_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2833,7 +2841,7 @@ { "fixture_value": 102312.0, "kind": "calibration_drift", - "ledger_value": 101189.0, + "ledger_value": 89479.33333333333, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_0_to_1_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2841,7 +2849,7 @@ { "fixture_value": 95698.0, "kind": "calibration_drift", - "ledger_value": 94296.0, + "ledger_value": 104891.11111111111, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_10_800_to_12_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2849,7 +2857,7 @@ { "fixture_value": 106663.0, "kind": "calibration_drift", - "ledger_value": 106102.0, + "ledger_value": 122035.55555555556, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_12_000_to_13_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2857,7 +2865,7 @@ { "fixture_value": 181180.0, "kind": "calibration_drift", - "ledger_value": 182183.0, + "ledger_value": 197163.22222222222, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_13_200_to_14_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2865,7 +2873,7 @@ { "fixture_value": 189861.0, "kind": "calibration_drift", - "ledger_value": 191730.0, + "ledger_value": 209497.33333333334, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_14_400_to_15_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2873,7 +2881,7 @@ { "fixture_value": 129174.0, "kind": "calibration_drift", - "ledger_value": 130302.0, + "ledger_value": 149963.22222222222, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_15_600_to_16_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2881,7 +2889,7 @@ { "fixture_value": 84690.0, "kind": "calibration_drift", - "ledger_value": 86110.0, + "ledger_value": 108689.66666666667, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_16_800_to_18_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2889,7 +2897,7 @@ { "fixture_value": 46244.0, "kind": "calibration_drift", - "ledger_value": 47330.0, + "ledger_value": 61718.666666666664, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_18_000_to_19_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2897,7 +2905,7 @@ { "fixture_value": 26481.0, "kind": "calibration_drift", - "ledger_value": 27065.0, + "ledger_value": 34050.444444444445, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_19_200_to_20_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2905,7 +2913,7 @@ { "fixture_value": 120819.0, "kind": "calibration_drift", - "ledger_value": 121018.0, + "ledger_value": 127403.22222222222, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_1_200_to_2_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2913,7 +2921,7 @@ { "fixture_value": 18143.0, "kind": "calibration_drift", - "ledger_value": 18536.0, + "ledger_value": 22338.333333333332, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_20_400_to_21_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2921,7 +2929,7 @@ { "fixture_value": 12325.0, "kind": "calibration_drift", - "ledger_value": 12726.0, + "ledger_value": 14685.777777777777, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_21_600_to_22_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2929,7 +2937,7 @@ { "fixture_value": 9555.0, "kind": "calibration_drift", - "ledger_value": 9793.0, + "ledger_value": 11133.666666666666, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_22_800_to_24_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2937,7 +2945,7 @@ { "fixture_value": 6230.0, "kind": "calibration_drift", - "ledger_value": 6398.0, + "ledger_value": 6951.222222222223, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_24_000_to_25_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2945,7 +2953,7 @@ { "fixture_value": 5884.0, "kind": "calibration_drift", - "ledger_value": 6020.0, + "ledger_value": 6508.222222222223, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_25_200_to_26_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2953,7 +2961,7 @@ { "fixture_value": 5362.0, "kind": "calibration_drift", - "ledger_value": 5488.0, + "ledger_value": 5913.444444444444, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_26_400_to_27_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2961,7 +2969,7 @@ { "fixture_value": 1786.0, "kind": "calibration_drift", - "ledger_value": 1829.0, + "ledger_value": 1884.111111111111, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_27_600_to_28_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2969,7 +2977,7 @@ { "fixture_value": 1491.0, "kind": "calibration_drift", - "ledger_value": 1543.0, + "ledger_value": 1653.7777777777778, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_28_800_to_30_000", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2977,7 +2985,7 @@ { "fixture_value": 173925.0, "kind": "calibration_drift", - "ledger_value": 173855.0, + "ledger_value": 197136.66666666666, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_2_400_to_3_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2985,7 +2993,7 @@ { "fixture_value": 375706.0, "kind": "calibration_drift", - "ledger_value": 369404.0, + "ledger_value": 377063.1111111111, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_3_600_to_4_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -2993,7 +3001,7 @@ { "fixture_value": 200713.0, "kind": "calibration_drift", - "ledger_value": 197717.0, + "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." @@ -3001,7 +3009,7 @@ { "fixture_value": 107860.0, "kind": "calibration_drift", - "ledger_value": 106706.0, + "ledger_value": 114033.33333333333, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_6_000_to_7_200", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -3009,7 +3017,7 @@ { "fixture_value": 144036.0, "kind": "calibration_drift", - "ledger_value": 143277.0, + "ledger_value": 149043.77777777778, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_7_200_to_8_400", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -3017,7 +3025,7 @@ { "fixture_value": 377221.0, "kind": "calibration_drift", - "ledger_value": 379652.0, + "ledger_value": 399750.22222222225, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_8_400_to_9_600", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -3025,7 +3033,7 @@ { "fixture_value": 341138.0, "kind": "calibration_drift", - "ledger_value": 341457.0, + "ledger_value": 386411.6666666667, "name": "dwp/uc_payment_dist/SINGLE_annual_payment_9_600_to_10_800", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." @@ -3033,11 +3041,19 @@ { "fixture_value": 67727478991.59665, "kind": "calibration_drift", - "ledger_value": 65937000000.0, + "ledger_value": 127316000000.0, "name": "hmrc.cgt.gains_total", "period": 2025, "reason": "Ledger carries the HMRC 2023-24 outturn value GBP 65,937,000,000 and holds it by identity under the current doctrine; the incumbent Fixture B row is GBP 67,727,478,991.60 at 2025 because it carries a forecast/uprated value. Signed as a doctrine consequence, not a binding error." }, + { + "fixture_value": 378000.0, + "kind": "calibration_drift", + "ledger_value": 584000.0, + "name": "hmrc.cgt.taxpayers_total", + "period": 2025, + "reason": "Ledger-compiled value differs from the fixture value at this comparison period." + }, { "fixture_value": 1236000000.0, "kind": "calibration_drift", 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 efe5675ca..a34a5e228 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 @@ -884,14 +884,14 @@ }, { "kind": "ledger_only", - "ledger_value": 65937000000.0, + "ledger_value": 69861000000.0, "name": "hmrc.cgt.gains_total", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 378000.0, + "ledger_value": 403000.0, "name": "hmrc.cgt.taxpayers_total", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json b/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json index 558420794..f18c8786a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_target_reference_membership.json @@ -3,10 +3,9 @@ "target_period": 2025, "candidate_count": 21519, "contract_target_count": 33, - "active_reference_count": 19618, + "active_reference_count": 19932, "status_counts": { - "active": 19618, - "no_fact_at_or_before_period": 314, + "active": 19932, "no_fact_for_area": 1586, "signed_deferral_compile_error": 1 }, @@ -2824,333 +2823,11 @@ "W06000024" ] }, - { - "target_id": "ons.rent.private_rent", - "geography_level": "local_authority", - "reason_id": "private_rent_pipr_after_target_period", - "rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred.", - "area_ids": [ - "E06000001", - "E06000002", - "E06000003", - "E06000004", - "E06000005", - "E06000006", - "E06000007", - "E06000008", - "E06000009", - "E06000010", - "E06000011", - "E06000012", - "E06000013", - "E06000014", - "E06000015", - "E06000016", - "E06000017", - "E06000018", - "E06000019", - "E06000020", - "E06000021", - "E06000022", - "E06000023", - "E06000024", - "E06000025", - "E06000026", - "E06000027", - "E06000030", - "E06000031", - "E06000032", - "E06000033", - "E06000034", - "E06000035", - "E06000036", - "E06000037", - "E06000038", - "E06000039", - "E06000040", - "E06000041", - "E06000042", - "E06000043", - "E06000044", - "E06000045", - "E06000046", - "E06000047", - "E06000049", - "E06000050", - "E06000051", - "E06000052", - "E06000054", - "E06000055", - "E06000056", - "E06000057", - "E06000058", - "E06000059", - "E06000060", - "E06000061", - "E06000062", - "E06000063", - "E06000064", - "E06000065", - "E06000066", - "E07000008", - "E07000009", - "E07000010", - "E07000011", - "E07000012", - "E07000032", - "E07000033", - "E07000034", - "E07000035", - "E07000036", - "E07000037", - "E07000038", - "E07000039", - "E07000040", - "E07000041", - "E07000042", - "E07000043", - "E07000044", - "E07000045", - "E07000046", - "E07000047", - "E07000061", - "E07000062", - "E07000063", - "E07000064", - "E07000065", - "E07000066", - "E07000067", - "E07000068", - "E07000069", - "E07000070", - "E07000071", - "E07000072", - "E07000073", - "E07000074", - "E07000075", - "E07000076", - "E07000077", - "E07000078", - "E07000079", - "E07000080", - "E07000081", - "E07000082", - "E07000083", - "E07000084", - "E07000085", - "E07000086", - "E07000087", - "E07000088", - "E07000089", - "E07000090", - "E07000091", - "E07000092", - "E07000093", - "E07000094", - "E07000095", - "E07000096", - "E07000098", - "E07000099", - "E07000102", - "E07000103", - "E07000105", - "E07000106", - "E07000107", - "E07000108", - "E07000109", - "E07000110", - "E07000111", - "E07000112", - "E07000113", - "E07000114", - "E07000115", - "E07000116", - "E07000117", - "E07000118", - "E07000119", - "E07000120", - "E07000121", - "E07000122", - "E07000123", - "E07000124", - "E07000125", - "E07000126", - "E07000127", - "E07000128", - "E07000129", - "E07000130", - "E07000131", - "E07000132", - "E07000133", - "E07000134", - "E07000135", - "E07000136", - "E07000137", - "E07000138", - "E07000139", - "E07000140", - "E07000141", - "E07000142", - "E07000143", - "E07000144", - "E07000145", - "E07000146", - "E07000147", - "E07000148", - "E07000149", - "E07000170", - "E07000171", - "E07000172", - "E07000173", - "E07000174", - "E07000175", - "E07000176", - "E07000177", - "E07000178", - "E07000179", - "E07000180", - "E07000181", - "E07000192", - "E07000193", - "E07000194", - "E07000195", - "E07000196", - "E07000197", - "E07000198", - "E07000199", - "E07000200", - "E07000202", - "E07000203", - "E07000207", - "E07000208", - "E07000209", - "E07000210", - "E07000211", - "E07000212", - "E07000213", - "E07000214", - "E07000215", - "E07000216", - "E07000217", - "E07000218", - "E07000219", - "E07000220", - "E07000221", - "E07000222", - "E07000223", - "E07000224", - "E07000225", - "E07000226", - "E07000227", - "E07000228", - "E07000229", - "E07000234", - "E07000235", - "E07000236", - "E07000237", - "E07000238", - "E07000239", - "E07000240", - "E07000241", - "E07000242", - "E07000243", - "E07000244", - "E07000245", - "E08000001", - "E08000002", - "E08000003", - "E08000004", - "E08000005", - "E08000006", - "E08000007", - "E08000008", - "E08000009", - "E08000010", - "E08000011", - "E08000012", - "E08000013", - "E08000014", - "E08000015", - "E08000017", - "E08000018", - "E08000021", - "E08000022", - "E08000023", - "E08000024", - "E08000025", - "E08000026", - "E08000027", - "E08000028", - "E08000029", - "E08000030", - "E08000031", - "E08000032", - "E08000033", - "E08000034", - "E08000035", - "E08000036", - "E08000037", - "E09000002", - "E09000003", - "E09000004", - "E09000005", - "E09000006", - "E09000007", - "E09000008", - "E09000009", - "E09000010", - "E09000011", - "E09000012", - "E09000013", - "E09000014", - "E09000015", - "E09000016", - "E09000017", - "E09000018", - "E09000019", - "E09000020", - "E09000021", - "E09000022", - "E09000023", - "E09000024", - "E09000025", - "E09000026", - "E09000027", - "E09000028", - "E09000029", - "E09000030", - "E09000031", - "E09000032", - "E09000033", - "W06000001", - "W06000002", - "W06000003", - "W06000004", - "W06000005", - "W06000006", - "W06000008", - "W06000009", - "W06000010", - "W06000011", - "W06000012", - "W06000013", - "W06000014", - "W06000015", - "W06000016", - "W06000018", - "W06000019", - "W06000020", - "W06000021", - "W06000022", - "W06000023", - "W06000024" - ] - }, { "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "reason_id": "private_rent_pipr_english_lad_absent", - "rationale": "The pinned feed's sole PIPR period (2026-06) carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001.", + "rationale": "The pinned PIPR monthly series carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001.", "area_ids": [ "E06000053", "E08000016", @@ -3162,7 +2839,7 @@ "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "reason_id": "private_rent_pipr_scotland_brma_grain", - "rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred.", + "rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred.", "area_ids": [ "S12000005", "S12000006", @@ -3202,7 +2879,7 @@ "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "reason_id": "private_rent_pipr_ni_absent", - "rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent.", + "rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent.", "area_ids": [ "N09000001", "N09000002", @@ -139834,6 +139511,2518 @@ "geography_id": "W06000024", "from": "2021", "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000001", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000001", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000002", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000002", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000003", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000003", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000004", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000004", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000005", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000005", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000006", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000006", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000007", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000007", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000008", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000008", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000009", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000009", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000010", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000010", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000011", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000011", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000012", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000012", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000013", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000013", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000014", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000014", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000015", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000015", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000016", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000016", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000017", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000017", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000018", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000018", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000019", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000019", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000020", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000020", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000021", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000021", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000022", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000022", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000023", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000023", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000024", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000024", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000025", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000025", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000026", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000026", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000027", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000027", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000030", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000030", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000031", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000031", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000032", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000032", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000033", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000033", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000034", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000034", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000035", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000035", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000036", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000036", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000037", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000037", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000038", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000038", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000039", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000039", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000040", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000040", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000041", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000041", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000042", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000042", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000043", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000043", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000044", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000044", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000045", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000045", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000046", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000046", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000047", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000047", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000049", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000049", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000050", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000050", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000051", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000051", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000052", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000052", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000054", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000054", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000055", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000055", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000056", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000056", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000057", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000057", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000058", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000058", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000059", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000059", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000060", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000060", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000061", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000061", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000062", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000062", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000063", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000063", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000064", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000064", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000065", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000065", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E06000066", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E06000066", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000008", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000008", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000009", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000009", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000010", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000010", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000011", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000011", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000012", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000012", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000032", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000032", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000033", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000033", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000034", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000034", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000035", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000035", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000036", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000036", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000037", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000037", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000038", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000038", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000039", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000039", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000040", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000040", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000041", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000041", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000042", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000042", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000043", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000043", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000044", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000044", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000045", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000045", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000046", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000046", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000047", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000047", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000061", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000061", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000062", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000062", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000063", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000063", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000064", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000064", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000065", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000065", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000066", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000066", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000067", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000067", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000068", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000068", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000069", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000069", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000070", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000070", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000071", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000071", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000072", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000072", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000073", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000073", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000074", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000074", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000075", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000075", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000076", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000076", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000077", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000077", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000078", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000078", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000079", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000079", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000080", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000080", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000081", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000081", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000082", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000082", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000083", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000083", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000084", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000084", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000085", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000085", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000086", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000086", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000087", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000087", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000088", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000088", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000089", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000089", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000090", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000090", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000091", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000091", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000092", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000092", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000093", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000093", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000094", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000094", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000095", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000095", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000096", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000096", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000098", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000098", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000099", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000099", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000102", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000102", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000103", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000103", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000105", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000105", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000106", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000106", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000107", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000107", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000108", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000108", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000109", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000109", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000110", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000110", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000111", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000111", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000112", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000112", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000113", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000113", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000114", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000114", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000115", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000115", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000116", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000116", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000117", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000117", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000118", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000118", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000119", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000119", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000120", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000120", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000121", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000121", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000122", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000122", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000123", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000123", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000124", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000124", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000125", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000125", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000126", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000126", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000127", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000127", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000128", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000128", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000129", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000129", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000130", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000130", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000131", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000131", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000132", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000132", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000133", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000133", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000134", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000134", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000135", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000135", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000136", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000136", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000137", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000137", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000138", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000138", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000139", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000139", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000140", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000140", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000141", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000141", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000142", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000142", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000143", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000143", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000144", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000144", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000145", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000145", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000146", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000146", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000147", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000147", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000148", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000148", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000149", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000149", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000170", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000170", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000171", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000171", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000172", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000172", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000173", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000173", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000174", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000174", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000175", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000175", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000176", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000176", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000177", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000177", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000178", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000178", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000179", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000179", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000180", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000180", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000181", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000181", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000192", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000192", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000193", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000193", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000194", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000194", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000195", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000195", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000196", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000196", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000197", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000197", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000198", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000198", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000199", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000199", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000200", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000200", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000202", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000202", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000203", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000203", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000207", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000207", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000208", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000208", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000209", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000209", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000210", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000210", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000211", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000211", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000212", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000212", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000213", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000213", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000214", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000214", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000215", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000215", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000216", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000216", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000217", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000217", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000218", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000218", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000219", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000219", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000220", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000220", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000221", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000221", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000222", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000222", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000223", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000223", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000224", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000224", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000225", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000225", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000226", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000226", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000227", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000227", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000228", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000228", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000229", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000229", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000234", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000234", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000235", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000235", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000236", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000236", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000237", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000237", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000238", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000238", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000239", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000239", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000240", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000240", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000241", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000241", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000242", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000242", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000243", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000243", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000244", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000244", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E07000245", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E07000245", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000001", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000001", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000002", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000002", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000003", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000003", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000004", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000004", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000005", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000005", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000006", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000006", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000007", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000007", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000008", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000008", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000009", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000009", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000010", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000010", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000011", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000011", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000012", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000012", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000013", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000013", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000014", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000014", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000015", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000015", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000017", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000017", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000018", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000018", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000021", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000021", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000022", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000022", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000023", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000023", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000024", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000024", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000025", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000025", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000026", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000026", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000027", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000027", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000028", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000028", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000029", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000029", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000030", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000030", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000031", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000031", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000032", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000032", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000033", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000033", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000034", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000034", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000035", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000035", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000036", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000036", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E08000037", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E08000037", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000002", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000002", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000003", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000003", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000004", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000004", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000005", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000005", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000006", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000006", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000007", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000007", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000008", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000008", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000009", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000009", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000010", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000010", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000011", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000011", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000012", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000012", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000013", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000013", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000014", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000014", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000015", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000015", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000016", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000016", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000017", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000017", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000018", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000018", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000019", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000019", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000020", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000020", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000021", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000021", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000022", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000022", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000023", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000023", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000024", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000024", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000025", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000025", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000026", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000026", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000027", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000027", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000028", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000028", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000029", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000029", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000030", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000030", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000031", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000031", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000032", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000032", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@E09000033", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "E09000033", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000001", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000001", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000002", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000002", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000003", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000003", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000004", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000004", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000005", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000005", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000006", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000006", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000008", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000008", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000009", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000009", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000010", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000010", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000011", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000011", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000012", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000012", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000013", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000013", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000014", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000014", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000015", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000015", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000016", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000016", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000018", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000018", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000019", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000019", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000020", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000020", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000021", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000021", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000022", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000022", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000023", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000023", + "from": "2025-12", + "to": "2025" + }, + { + "name": "ons.rent.private_rent@W06000024", + "target_id": "ons.rent.private_rent", + "geography_level": "local_authority", + "geography_id": "W06000024", + "from": "2025-12", + "to": "2025" } ], "holds_by_target": { @@ -139854,6 +142043,7 @@ "ons.age.50_60": 1011, "ons.age.60_70": 1011, "ons.age.70_80": 1011, + "ons.rent.private_rent": 314, "ons.tenure.owned_mortgage": 361, "ons.tenure.owned_outright": 361, "ons.tenure.private_rent": 361, @@ -376520,10 +378710,10 @@ } }, "ons.rent.private_rent": { - "status": "multiple_deferrals", + "status": "partially_active", "geography_levels": { "local_authority": { - "status": "multiple_deferrals", + "status": "partially_active", "candidate_count": 361, "candidates": [ { @@ -376531,588 +378721,637 @@ "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000001", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 551.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_810204c1d20803046f0b0e85" }, { "name": "ons.rent.private_rent@E06000002", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000002", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 665.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_271d7b655bec1a9c0c83561d" }, { "name": "ons.rent.private_rent@E06000003", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000003", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 624.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6ac6d9e904a5619acd8ccdb6" }, { "name": "ons.rent.private_rent@E06000004", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000004", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 705.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2c472c6ccad870107938350f" }, { "name": "ons.rent.private_rent@E06000005", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000005", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 641.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_83540ce72ca002172a2bb9b7" }, { "name": "ons.rent.private_rent@E06000006", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000006", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 698.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4a90543b7740232645f2ccea" }, { "name": "ons.rent.private_rent@E06000007", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000007", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 849.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c1480a320c56ec1fa6ef108" }, { "name": "ons.rent.private_rent@E06000008", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000008", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 676.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a6931fe3736e16d874703d11" }, { "name": "ons.rent.private_rent@E06000009", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000009", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 665.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6454309306b9e0d99c61919f" }, { "name": "ons.rent.private_rent@E06000010", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000010", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 645.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f668ac3be0340547971e223a" }, { "name": "ons.rent.private_rent@E06000011", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000011", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 686.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_24f7b798b27e0a2e941fd029" }, { "name": "ons.rent.private_rent@E06000012", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000012", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 598.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b2e3628fa9cc881526a358cc" }, { "name": "ons.rent.private_rent@E06000013", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000013", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 612.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_18038fb4505d7b66d0aa573c" }, { "name": "ons.rent.private_rent@E06000014", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000014", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1126.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0bb784c3f78a682dfacd077" }, { "name": "ons.rent.private_rent@E06000015", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000015", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 831.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_85e76449be5afd13fcffab38" }, { "name": "ons.rent.private_rent@E06000016", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000016", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 999.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8f8980bb372345a3bf3b869" }, { "name": "ons.rent.private_rent@E06000017", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000017", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 933.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f4a8a6b95cb1ddac3841125c" }, { "name": "ons.rent.private_rent@E06000018", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000018", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 981.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7e30fb92f37eb60929bebe53" }, { "name": "ons.rent.private_rent@E06000019", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000019", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 797.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_19376586811ea805374e101d" }, { "name": "ons.rent.private_rent@E06000020", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000020", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 801.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b05f3bd28f2465d69d1ebb11" }, { "name": "ons.rent.private_rent@E06000021", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000021", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 674.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0b61fb9d53ad6161b4854855" }, { "name": "ons.rent.private_rent@E06000022", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000022", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1750.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7cd601c3b01cbed71a37d00a" }, { "name": "ons.rent.private_rent@E06000023", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000023", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1785.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_19441274e85cfbf2a53a19f6" }, { "name": "ons.rent.private_rent@E06000024", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000024", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1166.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bb6f89d9b6d2a99e5a7958a9" }, { "name": "ons.rent.private_rent@E06000025", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000025", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1401.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e8b56e1ca0dc8e8fcd91cf41" }, { "name": "ons.rent.private_rent@E06000026", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000026", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 954.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dccb64528decb2ee04ee3df1" }, { "name": "ons.rent.private_rent@E06000027", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000027", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 876.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4ef1c1ebe4c5342ed14c3bb4" }, { "name": "ons.rent.private_rent@E06000030", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000030", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1052.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d90b1e2611a261bab055083" }, { "name": "ons.rent.private_rent@E06000031", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000031", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 964.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a24df2d888c26d7dfca75cc4" }, { "name": "ons.rent.private_rent@E06000032", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000032", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1183.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a72a214b5e5dc070873915c9" }, { "name": "ons.rent.private_rent@E06000033", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000033", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1234.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9b5f614e81c986af0c7a6d4d" }, { "name": "ons.rent.private_rent@E06000034", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000034", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1296.6666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_854fde2346e363b3a4135752" }, { "name": "ons.rent.private_rent@E06000035", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000035", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1201.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd725845f9da1eb08e20b7e4" }, { "name": "ons.rent.private_rent@E06000036", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000036", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1431.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0d94e75a4f46be98adc0ee13" }, { "name": "ons.rent.private_rent@E06000037", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000037", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1261.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_202a66601337fa82c0df62e7" }, { "name": "ons.rent.private_rent@E06000038", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000038", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1548.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f52ab4c5dc2d6f6811c443de" }, { "name": "ons.rent.private_rent@E06000039", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000039", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1526.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd3afc14952b0a2c54922107" }, { "name": "ons.rent.private_rent@E06000040", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000040", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1772.4166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1777eaca3f429c6b982005b8" }, { "name": "ons.rent.private_rent@E06000041", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000041", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1445.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9bef4717cb09ac86b19a7cec" }, { "name": "ons.rent.private_rent@E06000042", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000042", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1293.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_15a06adfc9743d2ec0e450db" }, { "name": "ons.rent.private_rent@E06000043", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000043", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1821.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3e56e15e5e65786e6c017918" }, { "name": "ons.rent.private_rent@E06000044", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000044", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1331.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_21b90c3155f8978f3a037666" }, { "name": "ons.rent.private_rent@E06000045", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000045", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1212.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9bb2a43817b8bc2e31525d0a" }, { "name": "ons.rent.private_rent@E06000046", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000046", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 881.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_21609a0980bc2e9280f3dab9" }, { "name": "ons.rent.private_rent@E06000047", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000047", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 605.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_919ec320bebe3720fbe957b2" }, { "name": "ons.rent.private_rent@E06000049", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000049", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 920.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_58511ba8e787ea6978982b9c" }, { "name": "ons.rent.private_rent@E06000050", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000050", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 925.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_861940ed2c9354fee89022b0" }, { "name": "ons.rent.private_rent@E06000051", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000051", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 785.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_54ce4c1d92283c4e5ba43b53" }, { "name": "ons.rent.private_rent@E06000052", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000052", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 970.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_37d3a4fafd10e861fe355932" }, { "name": "ons.rent.private_rent@E06000053", @@ -377124,2311 +379363,2503 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_english_lad_absent", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." + "signed_rationale": "The pinned PIPR monthly series carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." }, { "name": "ons.rent.private_rent@E06000054", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000054", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1013.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_35b672d614d0c6192b959c7c" }, { "name": "ons.rent.private_rent@E06000055", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000055", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1128.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a1ee97d70262a62a3eefaf18" }, { "name": "ons.rent.private_rent@E06000056", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000056", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1194.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b9c14ed42bcae1e33f262aa0" }, { "name": "ons.rent.private_rent@E06000057", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000057", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 644.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_59c5b92be7d7371c19df03de" }, { "name": "ons.rent.private_rent@E06000058", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000058", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1362.4166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c1d1bdc7a55df37d02d0f111" }, { "name": "ons.rent.private_rent@E06000059", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000059", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1010.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3f3b70b49342b289a9d9c229" }, { "name": "ons.rent.private_rent@E06000060", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000060", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1413.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_40ca0f68c317c814c621b48b" }, { "name": "ons.rent.private_rent@E06000061", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000061", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 928.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7cdbd2c6663b7f305a01c4a1" }, { "name": "ons.rent.private_rent@E06000062", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000062", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1042.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6deec46f69f3745da5cc6bc7" }, { "name": "ons.rent.private_rent@E06000063", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000063", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 629.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_029910e8a6230dd4b86cb3fc" }, { "name": "ons.rent.private_rent@E06000064", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000064", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 761.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_01ee3934c30c4dcf165910c0" }, { "name": "ons.rent.private_rent@E06000065", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000065", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 824.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3aa869be8b4e6ba9c05d39e1" }, { "name": "ons.rent.private_rent@E06000066", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E06000066", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 956.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_01d31fe20a6c371cf64afe7b" }, { "name": "ons.rent.private_rent@E07000008", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000008", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1771.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0ce90f2621ffee4684f4c9d" }, { "name": "ons.rent.private_rent@E07000009", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000009", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1026.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_efb076e62d30b36b51293985" }, { "name": "ons.rent.private_rent@E07000010", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000010", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 807.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2c2af2e059ae6ef7a0fd992e" }, { "name": "ons.rent.private_rent@E07000011", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000011", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1016.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7bf5c9614351c29dc17a3b47" }, { "name": "ons.rent.private_rent@E07000012", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000012", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1358.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bfca2cbd7d42512a91d9b046" }, { "name": "ons.rent.private_rent@E07000032", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000032", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 762.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c0ac4942949cba67dfda3884" }, { "name": "ons.rent.private_rent@E07000033", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000033", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 666.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_af317b500ebabd62b26c6e93" }, { "name": "ons.rent.private_rent@E07000034", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000034", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 725.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b9168ebbc5eea5ee846d5c2c" }, { "name": "ons.rent.private_rent@E07000035", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000035", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 755.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4a3bfe8f7887f534072c8200" }, { "name": "ons.rent.private_rent@E07000036", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000036", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 814.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5b8bd6d763dc5f4bf9651cea" }, { "name": "ons.rent.private_rent@E07000037", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000037", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 875.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d442b07e33926d9730203f5e" }, { "name": "ons.rent.private_rent@E07000038", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000038", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 752.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_626655bd71ca77f65f00faa7" }, { "name": "ons.rent.private_rent@E07000039", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000039", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 842.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9ac6a2e01f81e24a948a0f80" }, { "name": "ons.rent.private_rent@E07000040", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000040", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 909.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_30a126e8cb493814c7c7f351" }, { "name": "ons.rent.private_rent@E07000041", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000041", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1300.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9cae5b799f91549f74e539eb" }, { "name": "ons.rent.private_rent@E07000042", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000042", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 860.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c0c653de04a05d201a9aa99e" }, { "name": "ons.rent.private_rent@E07000043", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000043", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 838.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bb81827272921c6cd7c73548" }, { "name": "ons.rent.private_rent@E07000044", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000044", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 976.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dba28ad7de1f59368dbfba47" }, { "name": "ons.rent.private_rent@E07000045", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000045", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 920.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_359c2ca2ba505e363b9a7aa6" }, { "name": "ons.rent.private_rent@E07000046", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000046", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 770.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2ed26fdaefb5f2775c420057" }, { "name": "ons.rent.private_rent@E07000047", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000047", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 823.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a33d622e6db5d1c13fb9f149" }, { "name": "ons.rent.private_rent@E07000061", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000061", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1151.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e4e985938b593cccae73681a" }, { "name": "ons.rent.private_rent@E07000062", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000062", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 989.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_38a47ebfd9616337e301a0b0" }, { "name": "ons.rent.private_rent@E07000063", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000063", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1260.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_198b274daad90574ada45d94" }, { "name": "ons.rent.private_rent@E07000064", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000064", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1152.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_eaa17e6f6b1d42882a4d0405" }, { "name": "ons.rent.private_rent@E07000065", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000065", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1240.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5aeb5cf5a846e34eb0186c3b" }, { "name": "ons.rent.private_rent@E07000066", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000066", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1344.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d6f27dfe6e32948ffce1e92c" }, { "name": "ons.rent.private_rent@E07000067", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000067", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1185.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e2f99b02a25c6a5cd1039cb2" }, { "name": "ons.rent.private_rent@E07000068", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000068", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1586.6666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3af031d1dd97504761e6d0a5" }, { "name": "ons.rent.private_rent@E07000069", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000069", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1194.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_604b11df7183a128acfbbc63" }, { "name": "ons.rent.private_rent@E07000070", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000070", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1382.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7f407eb84b88714db47aff3f" }, { "name": "ons.rent.private_rent@E07000071", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000071", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1168.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_49df4648b9ca34345cfd3ffc" }, { "name": "ons.rent.private_rent@E07000072", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000072", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1738.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b7841c7c3f8682361ca057cd" }, { "name": "ons.rent.private_rent@E07000073", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000073", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1447.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b05e957bf06be944ca43cedc" }, { "name": "ons.rent.private_rent@E07000074", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000074", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1090.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_024a229b9a221acd197ce618" }, { "name": "ons.rent.private_rent@E07000075", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000075", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1234.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f65219c703af0c2f9a8a36b4" }, { "name": "ons.rent.private_rent@E07000076", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000076", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1002.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c0ef52f9a0c19ed6651a16aa" }, { "name": "ons.rent.private_rent@E07000077", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000077", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1275.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4c1a3bf8ea3efe5b61f5f1c6" }, { "name": "ons.rent.private_rent@E07000078", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000078", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1207.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_27883935b7a2701c46d0f337" }, { "name": "ons.rent.private_rent@E07000079", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000079", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1184.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_699de35c991f74599415c82b" }, { "name": "ons.rent.private_rent@E07000080", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000080", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 818.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8004fa5bbc5bb30de53f65d9" }, { "name": "ons.rent.private_rent@E07000081", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000081", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1036.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a99b9bd8ea3851354c2e41be" }, { "name": "ons.rent.private_rent@E07000082", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000082", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 978.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dd9595e678845e93338643fe" }, { "name": "ons.rent.private_rent@E07000083", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000083", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 962.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_df839cdfa506d6bc5f529581" }, { "name": "ons.rent.private_rent@E07000084", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000084", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1279.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1333b24eb2bc2a37ba6023ae" }, { "name": "ons.rent.private_rent@E07000085", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000085", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1237.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_49d37da58a456f651bd3ecd5" }, { "name": "ons.rent.private_rent@E07000086", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000086", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1170.4166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dbecedbae6a74ed10d890bc2" }, { "name": "ons.rent.private_rent@E07000087", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000087", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1163.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ab6d758b152f05f718cf0c34" }, { "name": "ons.rent.private_rent@E07000088", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000088", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1098.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d33ff9e9030b3fc1df020fc3" }, { "name": "ons.rent.private_rent@E07000089", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000089", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1363.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d13114b94dda4081808ab5d1" }, { "name": "ons.rent.private_rent@E07000090", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000090", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1111.6666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9422b15ecc4369a639054549" }, { "name": "ons.rent.private_rent@E07000091", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000091", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1216.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_12f3286ec234cc019107b27f" }, { "name": "ons.rent.private_rent@E07000092", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000092", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1305.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bc19fa809fbcb7a79df69931" }, { "name": "ons.rent.private_rent@E07000093", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000093", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1153.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d444280dbf290eb7fd4b6bb2" }, { "name": "ons.rent.private_rent@E07000094", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000094", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1445.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_14d0dd786f2df04b852e5e23" }, { "name": "ons.rent.private_rent@E07000095", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000095", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1618.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d94d5c7b57d90eed5baad181" }, { "name": "ons.rent.private_rent@E07000096", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000096", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1558.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bca2d06548c881791cc675fb" }, { "name": "ons.rent.private_rent@E07000098", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000098", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1760.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_41cc19e44248a4854ad1d5ab" }, { "name": "ons.rent.private_rent@E07000099", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000099", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1358.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ecba66695e08825cecc7462a" }, { "name": "ons.rent.private_rent@E07000102", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000102", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1772.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_537385ad428a88d2798d557e" }, { "name": "ons.rent.private_rent@E07000103", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000103", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1766.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dec0bd357653032e74429e9e" }, { "name": "ons.rent.private_rent@E07000105", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000105", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1199.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ccfa5f938fc75aacc4a5472e" }, { "name": "ons.rent.private_rent@E07000106", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000106", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1210.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e15f95b4f0f75a0a1502dcdf" }, { "name": "ons.rent.private_rent@E07000107", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000107", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1517.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5eb22e86431c1f5bd6a3651e" }, { "name": "ons.rent.private_rent@E07000108", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000108", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 930.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_983c270d2bfcc3af94f6d9ed" }, { "name": "ons.rent.private_rent@E07000109", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000109", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1260.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0a28a5319ff4b0f5b6c22c01" }, { "name": "ons.rent.private_rent@E07000110", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000110", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1249.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0b2abf43801f71090095c848" }, { "name": "ons.rent.private_rent@E07000111", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000111", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1726.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_19d903c06d7eff120748316a" }, { "name": "ons.rent.private_rent@E07000112", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000112", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1068.4166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_00fda033140b7c2f36a951be" }, { "name": "ons.rent.private_rent@E07000113", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000113", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1090.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_094f23fb0b64bd2d178d3b37" }, { "name": "ons.rent.private_rent@E07000114", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000114", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1064.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6449e295c8d3691f00101609" }, { "name": "ons.rent.private_rent@E07000115", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000115", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1431.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef3095126683bfc6fdd39104" }, { "name": "ons.rent.private_rent@E07000116", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000116", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1450.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7154b7962ca250fc24e868e7" }, { "name": "ons.rent.private_rent@E07000117", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000117", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 605.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bfce22bc0b6559b4c54bb1d6" }, { "name": "ons.rent.private_rent@E07000118", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000118", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 739.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_058e77788fe14ab478de6a0a" }, { "name": "ons.rent.private_rent@E07000119", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000119", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 816.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6a41d7fa0f0ed2295b7b747e" }, { "name": "ons.rent.private_rent@E07000120", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000120", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 619.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_10c07b95168cfd38991a7caa" }, { "name": "ons.rent.private_rent@E07000121", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000121", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 768.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_958d9c99d305ad3a8600486a" }, { "name": "ons.rent.private_rent@E07000122", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000122", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 622.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_09700ff82cdea650c016ee86" }, { "name": "ons.rent.private_rent@E07000123", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000123", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 738.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b781872fea4d6d933d6cad05" }, { "name": "ons.rent.private_rent@E07000124", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000124", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 772.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_220c2f0113a1871defbab5e8" }, { "name": "ons.rent.private_rent@E07000125", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000125", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 767.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f4ea19267d324edefa1d6871" }, { "name": "ons.rent.private_rent@E07000126", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000126", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 758.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d09919573a65b4bf4ca0e175" }, { "name": "ons.rent.private_rent@E07000127", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000127", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 750.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_03a2e4db13a80d93377cb42b" }, { "name": "ons.rent.private_rent@E07000128", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000128", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 688.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e7d7eb9b53defa48deb7cfc9" }, { "name": "ons.rent.private_rent@E07000129", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000129", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 936.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_cd8288192f3aa74c1ef5dac6" }, { "name": "ons.rent.private_rent@E07000130", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000130", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 914.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7bc61af5a2366569d36515f7" }, { "name": "ons.rent.private_rent@E07000131", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000131", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 940.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0f224d9d1b9038cb10b37c47" }, { "name": "ons.rent.private_rent@E07000132", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000132", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 894.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5386181d54b6cb5f79cdae58" }, { "name": "ons.rent.private_rent@E07000133", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000133", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 751.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_35272b85a9896bea1a1fb2f5" }, { "name": "ons.rent.private_rent@E07000134", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000134", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 842.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a5aafd241583adaa06b8ab44" }, { "name": "ons.rent.private_rent@E07000135", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000135", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 983.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_eff789e5488fde838b4c9304" }, { "name": "ons.rent.private_rent@E07000136", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000136", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 782.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_213df6008ba9ca1d291efb1d" }, { "name": "ons.rent.private_rent@E07000137", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000137", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 658.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e1a00576cae9087bef1f3029" }, { "name": "ons.rent.private_rent@E07000138", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000138", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 901.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_55b27f47be22ef6b217bdbcc" }, { "name": "ons.rent.private_rent@E07000139", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000139", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 777.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_17530785930886c0f6f7f9b4" }, { "name": "ons.rent.private_rent@E07000140", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000140", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 739.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d1d3086d96f841dda79a1243" }, { "name": "ons.rent.private_rent@E07000141", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000141", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 831.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3ab087dc0406eb472db2ea37" }, { "name": "ons.rent.private_rent@E07000142", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000142", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 674.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_14c58dbfe62bca1202ee7d9e" }, { "name": "ons.rent.private_rent@E07000143", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000143", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 881.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ca13784039e7fbb9d7e35600" }, { "name": "ons.rent.private_rent@E07000144", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000144", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 894.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_514cdbf0b8951d92e82439c9" }, { "name": "ons.rent.private_rent@E07000145", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000145", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 779.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3a4a085bacfc62d74bb3ea19" }, { "name": "ons.rent.private_rent@E07000146", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000146", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 900.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d97bd5aeb72d8273472a4cf3" }, { "name": "ons.rent.private_rent@E07000147", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000147", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 822.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_aed2589671654a1f76b3a844" }, { "name": "ons.rent.private_rent@E07000148", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000148", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1129.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a8645f57bbbb2fbc331114f0" }, { "name": "ons.rent.private_rent@E07000149", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000149", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 943.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_73c4750f48a8a08b3be0be8f" }, { "name": "ons.rent.private_rent@E07000170", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000170", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 754.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_341f1c835b133418b9ca147c" }, { "name": "ons.rent.private_rent@E07000171", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000171", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 697.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_27787a20c9ca64933d0848b8" }, { "name": "ons.rent.private_rent@E07000172", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000172", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 947.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c9c6dea684a2baeafa4fe450" }, { "name": "ons.rent.private_rent@E07000173", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000173", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 870.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c39e7d09e8289926db0d149c" }, { "name": "ons.rent.private_rent@E07000174", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000174", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 752.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5b147274ca75158310aad992" }, { "name": "ons.rent.private_rent@E07000175", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000175", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 772.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_84e6c093ed4d04ad6543a3cb" }, { "name": "ons.rent.private_rent@E07000176", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000176", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1008.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c30d97eef50384f9a02d2550" }, { "name": "ons.rent.private_rent@E07000177", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000177", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1261.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_92a06b499b17ba32b5828943" }, { "name": "ons.rent.private_rent@E07000178", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000178", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1866.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_eea758f2ea09dfbe0910ce6c" }, { "name": "ons.rent.private_rent@E07000179", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000179", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1365.4166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_51b4bf93c1c39d361ff05097" }, { "name": "ons.rent.private_rent@E07000180", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000180", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1312.4166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c232557318acf1a543f088a6" }, { "name": "ons.rent.private_rent@E07000181", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000181", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1277.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_17d817f51981b62278817fc6" }, { "name": "ons.rent.private_rent@E07000192", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000192", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 809.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c7cd446794f733fb5bb1a55b" }, { "name": "ons.rent.private_rent@E07000193", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000193", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 806.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c3bdf27a376b8c2cd5705e88" }, { "name": "ons.rent.private_rent@E07000194", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000194", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1018.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_697b995d183f5f45e6ea25a6" }, { "name": "ons.rent.private_rent@E07000195", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000195", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 770.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f36d88cd2bb80d99be8b862" }, { "name": "ons.rent.private_rent@E07000196", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000196", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 902.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f90a206389db72898316ad34" }, { "name": "ons.rent.private_rent@E07000197", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000197", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 843.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6e3b44fe022050fb56e6e40b" }, { "name": "ons.rent.private_rent@E07000198", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000198", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 675.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_19b3227bd2eec7d39d5a3594" }, { "name": "ons.rent.private_rent@E07000199", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000199", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 915.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b5eef7a4aea52bcd1521a32b" }, { "name": "ons.rent.private_rent@E07000200", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000200", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 936.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a813769cd3215e69c2f5a238" }, { "name": "ons.rent.private_rent@E07000202", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000202", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 957.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e3aaa7050fd74c09d2546a41" }, { "name": "ons.rent.private_rent@E07000203", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000203", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 940.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_972573b0265bcbe35615570c" }, { "name": "ons.rent.private_rent@E07000207", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000207", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1856.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb64295877a6b9d4751154ba" }, { "name": "ons.rent.private_rent@E07000208", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000208", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1669.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c8e932871793fe33d5570a1a" }, { "name": "ons.rent.private_rent@E07000209", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000209", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1644.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb24aaf6f1ddd10c887312cf" }, { "name": "ons.rent.private_rent@E07000210", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000210", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1511.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_42dd5cb207900dd2202bb8b3" }, { "name": "ons.rent.private_rent@E07000211", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000211", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1595.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5f9c28fba18287898f823930" }, { "name": "ons.rent.private_rent@E07000212", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000212", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1605.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5cfe7068e0d78b4393b25ac2" }, { "name": "ons.rent.private_rent@E07000213", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000213", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1612.6666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_04466c256096f7699ff1258f" }, { "name": "ons.rent.private_rent@E07000214", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000214", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1473.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3f6f6f3241094b397ca7f00d" }, { "name": "ons.rent.private_rent@E07000215", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000215", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1557.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_28e803c629ff54749181a4c0" }, { "name": "ons.rent.private_rent@E07000216", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000216", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1478.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_267e5ed263dcdfac0ac547ed" }, { "name": "ons.rent.private_rent@E07000217", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000217", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1641.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5556956c4f8d50e28e6eac86" }, { "name": "ons.rent.private_rent@E07000218", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000218", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 922.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ab14bfaf20df227fb132a3e1" }, { "name": "ons.rent.private_rent@E07000219", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000219", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 870.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1b60e0bacfef026336702cbf" }, { "name": "ons.rent.private_rent@E07000220", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000220", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 991.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_79abacf194185113ea514a6a" }, { "name": "ons.rent.private_rent@E07000221", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000221", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1080.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_517b9993cc1bf9f604e288fa" }, { "name": "ons.rent.private_rent@E07000222", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000222", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1216.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_30fc53090dc6c0abef8dfebe" }, { "name": "ons.rent.private_rent@E07000223", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000223", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1351.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_155efc60bc5b7f7bf0bacd7e" }, { "name": "ons.rent.private_rent@E07000224", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000224", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1187.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7205ba4b23ff26aa39a41758" }, { "name": "ons.rent.private_rent@E07000225", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000225", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1288.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e6672436c08a7268a2e7c24a" }, { "name": "ons.rent.private_rent@E07000226", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000226", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1434.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_017f0c8837c191104dd15517" }, { "name": "ons.rent.private_rent@E07000227", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000227", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1410.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a7ec8dfa4909e2ad75a03220" }, { "name": "ons.rent.private_rent@E07000228", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000228", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1372.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_51bb55033b5440338e146f34" }, { "name": "ons.rent.private_rent@E07000229", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000229", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1292.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bc0c3de1efc104088a5d81b9" }, { "name": "ons.rent.private_rent@E07000234", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000234", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 965.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_23b20571a6349636587789f0" }, { "name": "ons.rent.private_rent@E07000235", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000235", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 883.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7bb7a0172a7bd7e3f65bbfd" }, { "name": "ons.rent.private_rent@E07000236", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000236", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 885.9166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_902fc8783480f6ae7e08c6cc" }, { "name": "ons.rent.private_rent@E07000237", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000237", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 922.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5b5c936cf32c5332e190ca94" }, { "name": "ons.rent.private_rent@E07000238", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000238", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 915.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0995f1d911b1c98e2f0be7b1" }, { "name": "ons.rent.private_rent@E07000239", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000239", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 833.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_46a791af9c05132f8cb185ab" }, { "name": "ons.rent.private_rent@E07000240", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000240", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1872.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8acfb8f1377d3c6d10e6763a" }, { "name": "ons.rent.private_rent@E07000241", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000241", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1440.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_80a8751658e970d3df525fba" }, { "name": "ons.rent.private_rent@E07000242", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000242", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1458.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f431447d4ea8c52965208fee" }, { "name": "ons.rent.private_rent@E07000243", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000243", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1371.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5fe11cd170f21e789fd267d0" }, { "name": "ons.rent.private_rent@E07000244", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000244", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 799.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_13f713d616d394e24d5c7926" }, { "name": "ons.rent.private_rent@E07000245", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E07000245", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1132.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b51893cb171baae17adc97d0" }, { "name": "ons.rent.private_rent@E08000001", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000001", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 816.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6ad19cbf9ba670cabb2fd330" }, { "name": "ons.rent.private_rent@E08000002", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000002", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 939.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5a20dd61769f3c062dfc9a3a" }, { "name": "ons.rent.private_rent@E08000003", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000003", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1316.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1b98d36c90dbcd49e2b411d9" }, { "name": "ons.rent.private_rent@E08000004", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000004", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 832.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d40f81fef744ebb5b02d6191" }, { "name": "ons.rent.private_rent@E08000005", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000005", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 774.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d6166544434140fb115a543e" }, { "name": "ons.rent.private_rent@E08000006", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000006", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1125.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_428f6d951b389ee6c21a328b" }, { "name": "ons.rent.private_rent@E08000007", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000007", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1054.6666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_80ba2950ee9b86b52c9f3dee" }, { "name": "ons.rent.private_rent@E08000008", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000008", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 873.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8a1afea7a499c9317cb2a9f7" }, { "name": "ons.rent.private_rent@E08000009", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000009", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1330.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad5b1050fdd3e3d093b460d9" }, { "name": "ons.rent.private_rent@E08000010", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000010", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 695.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7a1fc63383ab5623a95a7818" }, { "name": "ons.rent.private_rent@E08000011", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000011", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 773.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9e3054db2df2338fcc075b6f" }, { "name": "ons.rent.private_rent@E08000012", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000012", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 855.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3360e7a852070e097fb8c319" }, { "name": "ons.rent.private_rent@E08000013", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000013", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 751.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4f146a6a3789fd099bdba357" }, { "name": "ons.rent.private_rent@E08000014", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000014", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 883.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_05f6853f9ffa9ee2915dfa5c" }, { "name": "ons.rent.private_rent@E08000015", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000015", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 796.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8ef1d94c585e5e3cc2a05e06" }, { "name": "ons.rent.private_rent@E08000016", @@ -379440,31 +381871,33 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_english_lad_absent", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." + "signed_rationale": "The pinned PIPR monthly series carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." }, { "name": "ons.rent.private_rent@E08000017", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000017", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 656.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_36fe7415dde7966e99d1865d" }, { "name": "ons.rent.private_rent@E08000018", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000018", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 657.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_60282c8064b55c4aa24b76a1" }, { "name": "ons.rent.private_rent@E08000019", @@ -379476,211 +381909,228 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_english_lad_absent", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." + "signed_rationale": "The pinned PIPR monthly series carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." }, { "name": "ons.rent.private_rent@E08000021", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000021", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1102.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_60f60efbf9fd26fa63bd0bde" }, { "name": "ons.rent.private_rent@E08000022", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000022", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 798.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4f6d7b84b262ffea0b43c260" }, { "name": "ons.rent.private_rent@E08000023", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000023", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 688.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b8b75649506b713367db4463" }, { "name": "ons.rent.private_rent@E08000024", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000024", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 676.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d1bc71d0bbeb957b6ad5d69d" }, { "name": "ons.rent.private_rent@E08000025", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000025", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1061.9166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_11105c7391f8a1b8093ab570" }, { "name": "ons.rent.private_rent@E08000026", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000026", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 998.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7f2f23b9b987fceb73787048" }, { "name": "ons.rent.private_rent@E08000027", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000027", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 814.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_876c0b9dadfd9d102a386da7" }, { "name": "ons.rent.private_rent@E08000028", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000028", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 877.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bae4ea69c1858d54a1e99aec" }, { "name": "ons.rent.private_rent@E08000029", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000029", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1243.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_228af30fbc76163afaaf197d" }, { "name": "ons.rent.private_rent@E08000030", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000030", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 851.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9042477d8aca6421138ad150" }, { "name": "ons.rent.private_rent@E08000031", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000031", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 851.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_246163d20c48b855fd01c8aa" }, { "name": "ons.rent.private_rent@E08000032", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000032", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 718.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6fb9eb4cdbe5e6583b4a1f67" }, { "name": "ons.rent.private_rent@E08000033", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000033", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 723.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7987c949cdfb7bb1c2948366" }, { "name": "ons.rent.private_rent@E08000034", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000034", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 697.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_90e685f8021eeed56afdcc9a" }, { "name": "ons.rent.private_rent@E08000035", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000035", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1102.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8110de1607cb39fcd73ab028" }, { "name": "ons.rent.private_rent@E08000036", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000036", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 758.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_002b0bed452c07d2436d0f72" }, { "name": "ons.rent.private_rent@E08000037", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E08000037", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 757.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1fc05963f81173af16d51f63" }, { "name": "ons.rent.private_rent@E09000001", @@ -379692,391 +382142,423 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_english_lad_absent", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." + "signed_rationale": "The pinned PIPR monthly series carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001." }, { "name": "ons.rent.private_rent@E09000002", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000002", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1621.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2eff6c5d9bf72e1c88d8a8e5" }, { "name": "ons.rent.private_rent@E09000003", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000003", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1872.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4e93e47d0c7604d3c9a115e8" }, { "name": "ons.rent.private_rent@E09000004", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000004", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1476.8333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2e0488eac604b43d2f8c492c" }, { "name": "ons.rent.private_rent@E09000005", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000005", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2003.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_53b3033189dcd5a2651e2464" }, { "name": "ons.rent.private_rent@E09000006", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000006", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1629.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_744a892f0301c66a3d57fa32" }, { "name": "ons.rent.private_rent@E09000007", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000007", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2797.5833333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5e02a3b27cc1376727035f0c" }, { "name": "ons.rent.private_rent@E09000008", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000008", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1521.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ddde27b676fe29efbe291cf9" }, { "name": "ons.rent.private_rent@E09000009", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000009", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2040.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9c6487a9022e5cd2c8c17aa9" }, { "name": "ons.rent.private_rent@E09000010", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000010", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1720.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8c97523e809bee946ac5f8e6" }, { "name": "ons.rent.private_rent@E09000011", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000011", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1880.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ca80df101f5211ac6f424364" }, { "name": "ons.rent.private_rent@E09000012", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000012", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2550.6666666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8f1e568bbaf555cb40a97b4a" }, { "name": "ons.rent.private_rent@E09000013", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000013", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2733.0833333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9c1d663cf422392effe54bca" }, { "name": "ons.rent.private_rent@E09000014", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000014", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2174.5833333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f5d5f35335f3dc2755e559f3" }, { "name": "ons.rent.private_rent@E09000015", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000015", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1719.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_806c66ff47f0779e0f25f296" }, { "name": "ons.rent.private_rent@E09000016", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000016", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1519.4166666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_cb70efa2581fcdd43aaddefb" }, { "name": "ons.rent.private_rent@E09000017", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000017", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1529.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_69d74ce0b45e4c589ae20b79" }, { "name": "ons.rent.private_rent@E09000018", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000018", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1884.6666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_08bc190b6486f68ca023ba06" }, { "name": "ons.rent.private_rent@E09000019", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000019", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2701.1666666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7a5689367870f51e54e63cb9" }, { "name": "ons.rent.private_rent@E09000020", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000020", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 3632.6666666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a523725a3702237d48bf40c2" }, { "name": "ons.rent.private_rent@E09000021", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000021", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1793.5833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7642b619c81005cd3f5f6de7" }, { "name": "ons.rent.private_rent@E09000022", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000022", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2417.8333333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad4a754a4986bfc97ef556a1" }, { "name": "ons.rent.private_rent@E09000023", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000023", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1780.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1a568e90b396a3416b2eeaf6" }, { "name": "ons.rent.private_rent@E09000024", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000024", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2058.3333333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b2df9658bdcc8e5badfb96fb" }, { "name": "ons.rent.private_rent@E09000025", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000025", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1838.0833333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3d4934af5b47cb7a0b7f7739" }, { "name": "ons.rent.private_rent@E09000026", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000026", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1681.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_566e63c6084482ca1e6852d7" }, { "name": "ons.rent.private_rent@E09000027", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000027", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2203.9166666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_665c2a949f19a979f95337e7" }, { "name": "ons.rent.private_rent@E09000028", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000028", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2353.1666666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_211d107b1d00a6bb6c365147" }, { "name": "ons.rent.private_rent@E09000029", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000029", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1518.6666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_30870fa3e73e1fac0b632054" }, { "name": "ons.rent.private_rent@E09000030", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000030", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2365.1666666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_eafa0c64675bd0eba3c48b0e" }, { "name": "ons.rent.private_rent@E09000031", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000031", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1732.25, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ea3c6c976dc19f3ce48b4e15" }, { "name": "ons.rent.private_rent@E09000032", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000032", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 2523.8333333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c7f03bd74056f487282b5ffc" }, { "name": "ons.rent.private_rent@E09000033", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "E09000033", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 3252.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_feaddada827cf46349712f62" }, { "name": "ons.rent.private_rent@N09000001", @@ -380088,7 +382570,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000002", @@ -380100,7 +382582,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000003", @@ -380112,7 +382594,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000004", @@ -380124,7 +382606,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000005", @@ -380136,7 +382618,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000006", @@ -380148,7 +382630,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000007", @@ -380160,7 +382642,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000008", @@ -380172,7 +382654,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000009", @@ -380184,7 +382666,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000010", @@ -380196,7 +382678,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@N09000011", @@ -380208,7 +382690,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_ni_absent", - "signed_rationale": "The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." + "signed_rationale": "The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent." }, { "name": "ons.rent.private_rent@S12000005", @@ -380220,7 +382702,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000006", @@ -380232,7 +382714,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000008", @@ -380244,7 +382726,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000010", @@ -380256,7 +382738,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000011", @@ -380268,7 +382750,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000013", @@ -380280,7 +382762,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000014", @@ -380292,7 +382774,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000017", @@ -380304,7 +382786,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000018", @@ -380316,7 +382798,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000019", @@ -380328,7 +382810,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000020", @@ -380340,7 +382822,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000021", @@ -380352,7 +382834,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000023", @@ -380364,7 +382846,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000026", @@ -380376,7 +382858,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000027", @@ -380388,7 +382870,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000028", @@ -380400,7 +382882,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000029", @@ -380412,7 +382894,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000030", @@ -380424,7 +382906,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000033", @@ -380436,7 +382918,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000034", @@ -380448,7 +382930,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000035", @@ -380460,7 +382942,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000036", @@ -380472,7 +382954,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000038", @@ -380484,7 +382966,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000039", @@ -380496,7 +382978,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000040", @@ -380508,7 +382990,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000041", @@ -380520,7 +383002,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000042", @@ -380532,7 +383014,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000045", @@ -380544,7 +383026,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000047", @@ -380556,7 +383038,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000048", @@ -380568,7 +383050,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000049", @@ -380580,7 +383062,7 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@S12000050", @@ -380592,271 +383074,293 @@ "matched_fact_count_at_or_before_period": 0, "error": "ledger_reference_compile_status_no_fact_for_area", "signed_reason_id": "private_rent_pipr_scotland_brma_grain", - "signed_rationale": "The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." + "signed_rationale": "The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred." }, { "name": "ons.rent.private_rent@W06000001", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000001", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 682.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dc7a62369ddede38df4e9b1d" }, { "name": "ons.rent.private_rent@W06000002", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000002", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 674.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_11ba0bb33fba6b4a063c7dae" }, { "name": "ons.rent.private_rent@W06000003", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000003", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 770.6666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3f567e075db4197f94ba4143" }, { "name": "ons.rent.private_rent@W06000004", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000004", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 672.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5302492bf3b89069d0d7cecb" }, { "name": "ons.rent.private_rent@W06000005", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000005", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 754.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_86112330c38bdc02705d7f96" }, { "name": "ons.rent.private_rent@W06000006", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000006", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 739.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_9cbd083bc4d2e76a32839a9d" }, { "name": "ons.rent.private_rent@W06000008", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000008", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 687.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e52de09d439ebcb3a0bf3d64" }, { "name": "ons.rent.private_rent@W06000009", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000009", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 659.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ca40d2e1711f0944c672a3e8" }, { "name": "ons.rent.private_rent@W06000010", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000010", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 642.5833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c52b22bd901baf0d49a87ba1" }, { "name": "ons.rent.private_rent@W06000011", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000011", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 798.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6a1c0bec954a9f643f82d5f6" }, { "name": "ons.rent.private_rent@W06000012", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000012", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 634.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_edc8ce50fb3d940d6ac35c7d" }, { "name": "ons.rent.private_rent@W06000013", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000013", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 699.4166666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a87cf8ee15311eb525e4e862" }, { "name": "ons.rent.private_rent@W06000014", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000014", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 940.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2e112c0f8460bdd922b2c28f" }, { "name": "ons.rent.private_rent@W06000015", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000015", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 1124.1666666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_28e4f2f3aac802802e0e7c8d" }, { "name": "ons.rent.private_rent@W06000016", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000016", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 726.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1f0d8d88a184fd7cfd47a40b" }, { "name": "ons.rent.private_rent@W06000018", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000018", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 693.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7744cf7e6ce6a2a565b4ed8f" }, { "name": "ons.rent.private_rent@W06000019", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000019", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 635.0833333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_444428f84430ff131a6f6585" }, { "name": "ons.rent.private_rent@W06000020", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000020", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 840.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bf7780ab37a59e925e18759c" }, { "name": "ons.rent.private_rent@W06000021", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000021", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 965.1666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2b8116bb08a3d45c5136d8ab" }, { "name": "ons.rent.private_rent@W06000022", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000022", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 926.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5e52fd6947bbe1d137259434" }, { "name": "ons.rent.private_rent@W06000023", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000023", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 572.8333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_be196496709c3f8cbeb55284" }, { "name": "ons.rent.private_rent@W06000024", "target_id": "ons.rent.private_rent", "geography_level": "local_authority", "geography_id": "W06000024", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period", - "signed_reason_id": "private_rent_pipr_after_target_period", - "signed_rationale": "The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred." + "status": "active", + "matched_fact_count_overall": 42, + "matched_fact_count_at_or_before_period": 36, + "resolved_period": 2025, + "resolved_value": 749.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1e0b6ba855ae49031bb692e8" } ] } diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json b/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json index b31a0179b..ee618142e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json @@ -398732,6 +398732,7856 @@ "uprating_from_period": "2021", "uprating_to_period": 2025 }, + { + "name": "ons.rent.private_rent@E06000001", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000001" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000001", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000002", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000002" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000002", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000003", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000003" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000003", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000004", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000004" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000004", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000005", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000005" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000005", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000006", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000006" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000006", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000007", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000007" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000007", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000008", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000008" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000008", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000009", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000009" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000009", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000010", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000010" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000010", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000011", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000011" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000011", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000012", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000012" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000012", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000013", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000013" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000013", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000014", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000014" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000014", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000015", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000015" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000015", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000016", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000016" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000016", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000017", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000017" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000017", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000018", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000018" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000018", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000019", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000019" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000019", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000020", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000020" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000020", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000021", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000021" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000021", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000022", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000022" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000022", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000023", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000023" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000023", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000024", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000024" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000024", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000025", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000025" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000025", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000026", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000026" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000026", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000027", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000027" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000027", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000030", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000030" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000030", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000031", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000031" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000031", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000032", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000032" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000032", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000033", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000033" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000033", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000034", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000034" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000034", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000035", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000035" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000035", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000036", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000036" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000036", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000037", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000037" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000037", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000038", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000038" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000038", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000039", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000039" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000039", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000040", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000040" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000040", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000041", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000041" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000041", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000042", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000042" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000042", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000043", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000043" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000043", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000044", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000044" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000044", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000045", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000045" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000045", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000046", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000046" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000046", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000047", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000047" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000047", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000049", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000049" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000049", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000050", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000050" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000050", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000051", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000051" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000051", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000052", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000052" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000052", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000054", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000054" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000054", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000055", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000055" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000055", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000056", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000056" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000056", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000057", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000057" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000057", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000058", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000058" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000058", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000059", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000059" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000059", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000060", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000060" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000060", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000061", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000061" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000061", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000062", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000062" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000062", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000063", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000063" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000063", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000064", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000064" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000064", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000065", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000065" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000065", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E06000066", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E06000066" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E06000066", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000008", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000008" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000008", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000009", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000009" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000009", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000010", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000010" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000010", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000011", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000011" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000011", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000012", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000012" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000012", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000032", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000032" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000032", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000033", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000033" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000033", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000034", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000034" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000034", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000035", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000035" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000035", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000036", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000036" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000036", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000037", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000037" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000037", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000038", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000038" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000038", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000039", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000039" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000039", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000040", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000040" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000040", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000041", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000041" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000041", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000042", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000042" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000042", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000043", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000043" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000043", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000044", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000044" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000044", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000045", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000045" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000045", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000046", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000046" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000046", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000047", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000047" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000047", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000061", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000061" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000061", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000062", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000062" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000062", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000063", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000063" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000063", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000064", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000064" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000064", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000065", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000065" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000065", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000066", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000066" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000066", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000067", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000067" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000067", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000068", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000068" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000068", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000069", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000069" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000069", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000070", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000070" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000070", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000071", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000071" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000071", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000072", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000072" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000072", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000073", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000073" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000073", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000074", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000074" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000074", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000075", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000075" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000075", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000076", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000076" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000076", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000077", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000077" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000077", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000078", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000078" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000078", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000079", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000079" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000079", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000080", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000080" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000080", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000081", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000081" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000081", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000082", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000082" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000082", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000083", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000083" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000083", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000084", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000084" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000084", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000085", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000085" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000085", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000086", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000086" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000086", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000087", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000087" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000087", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000088", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000088" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000088", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000089", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000089" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000089", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000090", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000090" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000090", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000091", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000091" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000091", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000092", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000092" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000092", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000093", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000093" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000093", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000094", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000094" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000094", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000095", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000095" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000095", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000096", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000096" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000096", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000098", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000098" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000098", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000099", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000099" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000099", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000102", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000102" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000102", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000103", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000103" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000103", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000105", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000105" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000105", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000106", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000106" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000106", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000107", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000107" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000107", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000108", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000108" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000108", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000109", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000109" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000109", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000110", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000110" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000110", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000111", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000111" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000111", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000112", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000112" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000112", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000113", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000113" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000113", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000114", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000114" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000114", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000115", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000115" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000115", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000116", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000116" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000116", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000117", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000117" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000117", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000118", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000118" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000118", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000119", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000119" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000119", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000120", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000120" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000120", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000121", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000121" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000121", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000122", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000122" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000122", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000123", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000123" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000123", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000124", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000124" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000124", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000125", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000125" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000125", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000126", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000126" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000126", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000127", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000127" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000127", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000128", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000128" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000128", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000129", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000129" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000129", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000130", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000130" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000130", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000131", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000131" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000131", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000132", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000132" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000132", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000133", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000133" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000133", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000134", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000134" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000134", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000135", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000135" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000135", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000136", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000136" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000136", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000137", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000137" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000137", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000138", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000138" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000138", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000139", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000139" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000139", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000140", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000140" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000140", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000141", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000141" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000141", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000142", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000142" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000142", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000143", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000143" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000143", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000144", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000144" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000144", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000145", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000145" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000145", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000146", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000146" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000146", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000147", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000147" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000147", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000148", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000148" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000148", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000149", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000149" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000149", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000170", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000170" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000170", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000171", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000171" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000171", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000172", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000172" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000172", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000173", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000173" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000173", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000174", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000174" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000174", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000175", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000175" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000175", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000176", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000176" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000176", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000177", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000177" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000177", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000178", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000178" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000178", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000179", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000179" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000179", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000180", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000180" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000180", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000181", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000181" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000181", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000192", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000192" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000192", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000193", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000193" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000193", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000194", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000194" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000194", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000195", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000195" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000195", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000196", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000196" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000196", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000197", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000197" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000197", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000198", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000198" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000198", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000199", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000199" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000199", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000200", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000200" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000200", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000202", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000202" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000202", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000203", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000203" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000203", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000207", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000207" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000207", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000208", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000208" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000208", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000209", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000209" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000209", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000210", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000210" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000210", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000211", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000211" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000211", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000212", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000212" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000212", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000213", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000213" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000213", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000214", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000214" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000214", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000215", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000215" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000215", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000216", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000216" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000216", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000217", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000217" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000217", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000218", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000218" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000218", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000219", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000219" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000219", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000220", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000220" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000220", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000221", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000221" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000221", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000222", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000222" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000222", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000223", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000223" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000223", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000224", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000224" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000224", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000225", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000225" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000225", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000226", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000226" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000226", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000227", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000227" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000227", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000228", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000228" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000228", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000229", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000229" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000229", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000234", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000234" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000234", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000235", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000235" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000235", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000236", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000236" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000236", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000237", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000237" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000237", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000238", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000238" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000238", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000239", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000239" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000239", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000240", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000240" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000240", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000241", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000241" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000241", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000242", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000242" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000242", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000243", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000243" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000243", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000244", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000244" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000244", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E07000245", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E07000245" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E07000245", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000001", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000001" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000001", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000002", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000002" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000002", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000003", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000003" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000003", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000004", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000004" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000004", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000005", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000005" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000005", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000006", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000006" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000006", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000007", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000007" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000007", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000008", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000008" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000008", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000009", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000009" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000009", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000010", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000010" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000010", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000011", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000011" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000011", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000012", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000012" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000012", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000013", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000013" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000013", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000014", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000014" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000014", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000015", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000015" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000015", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000017", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000017" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000017", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000018", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000018" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000018", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000021", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000021" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000021", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000022", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000022" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000022", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000023", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000023" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000023", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000024", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000024" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000024", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000025", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000025" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000025", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000026", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000026" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000026", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000027", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000027" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000027", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000028", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000028" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000028", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000029", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000029" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000029", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000030", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000030" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000030", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000031", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000031" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000031", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000032", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000032" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000032", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000033", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000033" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000033", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000034", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000034" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000034", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000035", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000035" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000035", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000036", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000036" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000036", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E08000037", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E08000037" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E08000037", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000002", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000002" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000002", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000003", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000003" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000003", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000004", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000004" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000004", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000005", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000005" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000005", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000006", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000006" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000006", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000007", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000007" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000007", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000008", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000008" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000008", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000009", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000009" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000009", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000010", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000010" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000010", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000011", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000011" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000011", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000012", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000012" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000012", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000013", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000013" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000013", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000014", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000014" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000014", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000015", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000015" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000015", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000016", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000016" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000016", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000017", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000017" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000017", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000018", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000018" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000018", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000019", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000019" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000019", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000020", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000020" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000020", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000021", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000021" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000021", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000022", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000022" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000022", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000023", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000023" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000023", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000024", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000024" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000024", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000025", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000025" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000025", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000026", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000026" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000026", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000027", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000027" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000027", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000028", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000028" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000028", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000029", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000029" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000029", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000030", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000030" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000030", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000031", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000031" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000031", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000032", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000032" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000032", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@E09000033", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "E09000033" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "E09000033", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000001", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000001" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000001", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000002", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000002" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000002", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000003", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000003" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000003", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000004", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000004" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000004", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000005", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000005" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000005", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000006", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000006" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000006", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000008", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000008" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000008", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000009", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000009" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000009", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000010", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000010" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000010", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000011", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000011" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000011", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000012", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000012" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000012", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000013", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000013" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000013", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000014", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000014" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000014", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000015", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000015" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000015", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000016", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000016" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000016", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000018", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000018" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000018", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000019", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000019" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000019", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000020", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000020" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000020", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000021", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000021" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000021", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000022", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000022" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000022", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000023", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000023" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000023", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, + { + "name": "ons.rent.private_rent@W06000024", + "ledger_selector": { + "source_name": "ons", + "source_measure_id": "private_rent", + "record_set_spec_id": "uk.local_geography.private_rent.average_by_area.v1", + "geography_level": "local_authority", + "geography_id": "W06000024" + }, + "entity": "benunit", + "measure": "rent/private_rent", + "family": "ons_housing", + "period": 2025, + "metadata": { + "contract_target_id": "ons.rent.private_rent", + "measure_kind": "prepared_column", + "geography_level": "local_authority", + "geography_id": "W06000024", + "fact_aggregation": "time_mean", + "period_basis_note": "Calendar-year average of the available 2025 PIPR monthly area price levels; approved by Mar\u00eda on 2026-09-05." + }, + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", + "uprating_to_period": 2025 + }, { "name": "voa.council_tax_stock.by_area.band_a@E06000001", "ledger_selector": { diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_validation_levels.json b/packages/microcosm-build/src/microcosm/build/uk/local_validation_levels.json index 5b0304fa0..f5518fd77 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_validation_levels.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_validation_levels.json @@ -4,8 +4,11 @@ "description": "Report-only external levels for post-solve UK local validation. No row is wired into calibration or release scoring in this increment.", "source_feed": { "artifact": ".codex-work/consumer_facts_uk.jsonl", - "sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", - "source_commit": "33ca98a" + "manifest": ".codex-work/consumer_facts_uk_manifest.json", + "sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_repo": "PolicyEngine/chronicle", + "source_commit": "6fb700e" }, "rows": [ { 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 ec507a413..4ea45d035 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 @@ -6,9 +6,8 @@ "active_reference_count": 408, "status_counts": { "active": 408, - "multi_fact": 1, "no_fact_at_or_before_period": 7, - "signed_excluded": 1 + "signed_excluded": 2 }, "geography_pins": { "obr.income_tax": { @@ -1574,12 +1573,12 @@ }, { "name": "hmrc.cgt.taxpayers_total", - "from": "2023", + "from": "2024", "to": "2025" }, { "name": "hmrc.cgt.gains_total", - "from": "2023", + "from": "2024", "to": "2025" }, { @@ -1609,552 +1608,552 @@ }, { "name": "dwp.uc.households_children_1", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_children_2", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_children_3", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_children_4", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_children_5_or_more", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_single_no_children", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_single_with_children", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_couple_no_children", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.households_couple_with_children", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_0_to_1_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_1_200_to_2_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_12_000_to_13_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_13_200_to_14_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_14_400_to_15_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_15_600_to_16_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_16_800_to_18_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_18_000_to_19_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_19_200_to_20_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_20_400_to_21_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_21_600_to_22_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_22_800_to_24_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_2_400_to_3_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_24_000_to_25_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_25_200_to_26_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_26_400_to_27_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_27_600_to_28_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_28_800_to_30_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_3_600_to_4_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_4_800_to_6_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_6_000_to_7_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_7_200_to_8_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_8_400_to_9_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_9_600_to_10_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/SINGLE_annual_payment_10_800_to_12_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_0_to_1_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_1_200_to_2_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_12_000_to_13_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_13_200_to_14_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_14_400_to_15_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_15_600_to_16_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_16_800_to_18_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_18_000_to_19_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_19_200_to_20_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_20_400_to_21_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_21_600_to_22_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_22_800_to_24_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_2_400_to_3_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_24_000_to_25_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_25_200_to_26_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_26_400_to_27_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_27_600_to_28_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_28_800_to_30_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_3_600_to_4_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_4_800_to_6_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_6_000_to_7_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_7_200_to_8_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_8_400_to_9_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_9_600_to_10_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/LONE_PARENT_annual_payment_10_800_to_12_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_0_to_1_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_1_200_to_2_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_12_000_to_13_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_13_200_to_14_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_14_400_to_15_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_15_600_to_16_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_16_800_to_18_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_18_000_to_19_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_19_200_to_20_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_20_400_to_21_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_21_600_to_22_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_22_800_to_24_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_24_000_to_25_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_25_200_to_26_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_26_400_to_27_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_27_600_to_28_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_28_800_to_30_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_3_600_to_4_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_4_800_to_6_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_6_000_to_7_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_7_200_to_8_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_8_400_to_9_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_9_600_to_10_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_10_800_to_12_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_1_200_to_2_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_12_000_to_13_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_13_200_to_14_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_14_400_to_15_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_15_600_to_16_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_16_800_to_18_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_18_000_to_19_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_19_200_to_20_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_20_400_to_21_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_21_600_to_22_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_22_800_to_24_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_2_400_to_3_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_24_000_to_25_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_25_200_to_26_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_26_400_to_27_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_27_600_to_28_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_6_000_to_7_200", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { "name": "dwp.uc.scotland_households_child_under_1", - "from": "2025-05", + "from": "2025-12", "to": "2025" }, { @@ -4700,12 +4699,12 @@ { "name": "hmrc.cgt.taxpayers_total", "status": "active", - "matched_fact_count_overall": 37, - "matched_fact_count_at_or_before_period": 37, + "matched_fact_count_overall": 38, + "matched_fact_count_at_or_before_period": 38, "resolved_period": 2025, - "resolved_value": 378000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_78fb64bd2e9774df4b2f2d56" + "resolved_value": 584000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ec8cf88ffb8304ce72228e8b" } ] }, @@ -4715,12 +4714,12 @@ { "name": "hmrc.cgt.gains_total", "status": "active", - "matched_fact_count_overall": 37, - "matched_fact_count_at_or_before_period": 37, + "matched_fact_count_overall": 38, + "matched_fact_count_at_or_before_period": 38, "resolved_period": 2025, - "resolved_value": 65937000000.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1b082e386beee3c6900e9dfa" + "resolved_value": 127316000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_a9969c2a306f713f6bb203fc" } ] }, @@ -4829,12 +4828,12 @@ { "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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1269512.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_644c4f00ec93656261edcf42" + "resolved_value": 1278537.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_75d899ad408d26f0c2a0b4b2" } ] }, @@ -4844,12 +4843,12 @@ { "name": "dwp.uc.households_children_2", "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": 1103880.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_9ab84c46af8587c44e728bf3" + "resolved_value": 1100617.5555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_970b3f74426e7a9ca57d4f3f" } ] }, @@ -4859,12 +4858,12 @@ { "name": "dwp.uc.households_children_3", "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": 497665.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_6dcdc6d11cf3afee5beeffa6" + "resolved_value": 494553.22222222225, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8d071172a1212492c8895356" } ] }, @@ -4874,12 +4873,12 @@ { "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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 176202.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_615b1a43ca3d51a46d4f46a6" + "resolved_value": 174668.88888888888, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d46a42194825aa8ac424c18d" } ] }, @@ -4889,12 +4888,12 @@ { "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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 77894.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_d0e380e6527f49dd3585c634" + "resolved_value": 77376.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c672eb5959db157315a3a3e6" } ] }, @@ -4904,12 +4903,12 @@ { "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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 3191316.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_459c91f3fc3a98a523da443f" + "resolved_value": 3446962.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8f37a13228973c48fc995636" } ] }, @@ -4919,12 +4918,12 @@ { "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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 2213760.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_41f5ed85cf8b0bb1e30ed3c0" + "resolved_value": 2226220.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0e4512db88ae6dfb508d365d" } ] }, @@ -4934,12 +4933,12 @@ { "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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 266160.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_db1b0c763265b66903558f63" + "resolved_value": 284345.55555555556, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d1c98b108eaac7236138260" } ] }, @@ -4949,12 +4948,12 @@ { "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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 911392.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_d4b90e6010117d5593724efa" + "resolved_value": 899534.6666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_388f703e509e490c85497a81" } ] }, @@ -4964,252 +4963,252 @@ { "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": 101189.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_7c22cffc1a38778c7c43ed3c" + "resolved_value": 89479.33333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2ab0a2ad4fff5a73eb430af0" }, { "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": 121018.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_d3e756c93a3c0143508d1266" + "resolved_value": 127403.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4da96f3f87204e3b63a7197e" }, { "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": 106102.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_7403d7adc181e8d2f6c832d0" + "resolved_value": 122035.55555555556, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_100f173ee4233f5ed3616bbc" }, { "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": 182183.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_b7e5703a6a7e90d9384d821e" + "resolved_value": 197163.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_263205affbfb94c0a87b7834" }, { "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": 191730.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_40ccf757e12c655dde7c28a9" + "resolved_value": 209497.33333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f4e51bd6399c4a72f10e625f" }, { "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": 130302.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_5495d957950548ee5265e578" + "resolved_value": 149963.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_746aa1e8d116c4543251b137" }, { "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": 86110.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_7f32751b273236019d0798b0" + "resolved_value": 108689.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0dc82a9ba1ce7a8ea1855991" }, { "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": 47330.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_52effa75479c574acf4134d9" + "resolved_value": 61718.666666666664, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4399ab26a944d2d46a12311d" }, { "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": 27065.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_073ef8770019305805c7074e" + "resolved_value": 34050.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b8ab0a63fbef46e02aa34d37" }, { "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": 18536.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_05d7866882726d294cb2b698" + "resolved_value": 22338.333333333332, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d22d996cd3edb838030ab0dc" }, { "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, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 12726.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed6eafde744f64d26d82dbf2" + "resolved_value": 14685.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_404ce9f1ea3e17ec602a1de9" }, { "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": 9793.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_16597c41c14d5cebd04c4378" + "resolved_value": 11133.666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d2268373d3e5894e10f3f004" }, { "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": 173855.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_92ccc0cdeecc8d39c5addbbc" + "resolved_value": 197136.66666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_37e9e071fb187dab220f3876" }, { "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": 6398.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd890e1b94309f81f9ec55bb" + "resolved_value": 6951.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8af773c191130cd03d9de884" }, { "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": 6020.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_afeee8c7da377064d0933593" + "resolved_value": 6508.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f46b09c321cf98f8e0d12b89" }, { "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": 5488.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_9745e30f3384edf22e35cded" + "resolved_value": 5913.444444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a763ca2d87febd61de26d8b0" }, { "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": 1829.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_9327cf3a591e2df94e342811" + "resolved_value": 1884.111111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8b6d8894debcbda5e38c0923" }, { "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": 1543.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_029a3e490eb607ddc8e6e0e8" + "resolved_value": 1653.7777777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_aa3077a36f37ae73562e57fc" }, { "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": 369404.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_014f43c525c174241f9ae3f2" + "resolved_value": 377063.1111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_988e854b9584a36b1b62810f" }, { "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": 197717.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_6f4d510b41bea88731dbad53" + "resolved_value": 195983.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7a3e7c9563c15ba28ffd3c3e" }, { "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": 106706.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_7b0eac6a3e7fa0fdf30ae20b" + "resolved_value": 114033.33333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_294fdb23cc02a98334267137" }, { "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": 143277.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_b956dc2e29d5cd357cfb526e" + "resolved_value": 149043.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d4a92d292c96a2f440dee5a" }, { "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": 379652.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_b66198d395778d35ce86a34a" + "resolved_value": 399750.22222222225, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad92f85c0ac85ea7bb6e8ca3" }, { "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": 341457.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_3818f2d9e159770543dac328" + "resolved_value": 386411.6666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e2bbf1fe386cfcd8db712026" }, { "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": 94296.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_1cf99ad91d162c4b4a10ba6d" + "resolved_value": 104891.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_de2719af6e4d5f9ffe65aaee" } ] }, @@ -5219,252 +5218,252 @@ { "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": 24828.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_4273e312b98b380662c03f93" + "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", "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": 34587.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_0694e810a066ab1790440425" + "resolved_value": 36208.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_765ace417ceafd524ffda4c0" }, { "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": 129699.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_b673f0ea23294b3fa927464d" + "resolved_value": 125798.44444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_eaddee052a3861f259b93272" }, { "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": 129699.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_960bd045472cf623c35cf664" + "resolved_value": 129133.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b8d66013c8a68e423f507be8" }, { "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": 117812.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_210996567d5bf54f88063c27" + "resolved_value": 115856.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1bc84efe74c485d143caab7b" }, { "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": 128991.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_222b9723363faf4129bbdf63" + "resolved_value": 125660.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e26d2d7e425a94fd9fde3d17" }, { "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": 139675.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_3dd7c7c9e33c076b3d69bc58" + "resolved_value": 135836.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8fa2e062c33297530d458054" }, { "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": 134650.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_0c94d038c83605df1791d447" + "resolved_value": 135444.88888888888, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_77cb72042ffb9b2b1af769e3" }, { "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": 106818.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_5a7d3c0f71bf8db13f2a649a" + "resolved_value": 106341.88888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_acb89a96425fd7af119e0c3b" }, { "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": 86255.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_bea1b398332d1d61c0471393" + "resolved_value": 85490.44444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3aa5825f5e5e8dbc570c0af1" }, { "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": 80273.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd5aac9d266aee092d14bd76" + "resolved_value": 80226.88888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c5a0ee450c3ad7f882dfb167" }, { "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": 70319.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_44b81b3b7676500a87a60938" + "resolved_value": 71259.55555555556, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_13ffca0d11c038fc7d096ec9" }, { "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": 43550.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_a316ad8358830ca46c06b8a3" + "resolved_value": 46312.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6619e26753d01d76247e1759" }, { "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": 50805.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_bd5c3628d5556986948de1a5" + "resolved_value": 51301.666666666664, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_4a935006e5c346bfe0009055" }, { "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": 43132.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_6a09ee4de44449dfc8c84307" + "resolved_value": 43305.22222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e64560bd9c14d083cd03c985" }, { "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": 34342.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_44655134e1437b8245aadfd5" + "resolved_value": 34910.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8e16d0c97924701eb074c25d" }, { "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": 27650.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_06c7d10a8b8ad631c14e5aa2" + "resolved_value": 28513.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_cf9757018b0d313f20342b59" }, { "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": 22058.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_b138657095f80dfd0a4ba4dc" + "resolved_value": 22593.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6bede883f015e48e86c0a2de" }, { "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": 55560.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_6d87d6eb32df7d87c29c57f7" + "resolved_value": 60310.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b0710535c8b6006db118eb3b" }, { "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": 68058.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_54b83995b46b86deae16f2a3" + "resolved_value": 67858.66666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b4008c8b22190b4ee185d4f6" }, { "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": 89174.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_cc4b36a430821375a2ed82e0" + "resolved_value": 89577.44444444444, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_1d1fadffae053bf60d7fcd7e" }, { "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": 117236.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_cf9c6c694bfbd98b7fb42670" + "resolved_value": 116076.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fae65610a14d6c22f475d757" }, { "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": 98877.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_397b502ee3e68b1b94361cd8" + "resolved_value": 97511.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_540c0869e23edc4a402166bf" }, { "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": 102069.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_28de432bddc47503ed9234dc" + "resolved_value": 102343.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a170bf444a17ae88a80766b0" }, { "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": 125466.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_8a9d5f54da5f13cda4d7c879" + "resolved_value": 123718.11111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b7d0d6add859217e797a66ea" } ] }, @@ -5474,252 +5473,252 @@ { "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": 7553.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_822a65a1958c79035950ef6d" + "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": 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": 8732.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_8f96da01c8e98a3e520ad3af" + "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", "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": 15096.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_1320bfc5a74354fc0b932e45" + "resolved_value": 16121.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8b8e20276b7af9f670009f64" }, { "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": 12422.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_266208dfcf14fec7202d3f81" + "resolved_value": 13317.333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_22e83b92481a8b2267a15309" }, { "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": 17851.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_2ad978ed7754cd1bff3ec521" + "resolved_value": 19657.333333333332, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_42f1cbfe9fee5eb33f69088d" }, { "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": 14493.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_703d368c208e2bbfdd0ee5f8" + "resolved_value": 16443.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_aed9bf66bdbc046ee991fcf5" }, { "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": 11914.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_2326bacf548613787d0e5265" + "resolved_value": 13441.111111111111, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7ccb1420b8ca3e26048291b9" }, { "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": 9478.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_3c8b4dcf3516206f4f91536f" + "resolved_value": 10728.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_a7057ddde3cd2ffaed246687" }, { "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": 8479.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_64fc1a0b6ffa5d083131e00f" + "resolved_value": 9653.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3e228ab480713f15af6e847c" }, { "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": 5764.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_61477c25c1bda2189013f5d8" + "resolved_value": 6486.888888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ecfd0dfe25ebc098ade1e902" }, { "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": 3525.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_1bfbe99d32b115fb101c16f3" + "resolved_value": 3981.8888888888887, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2bbf9ab64d9fde9025452375" }, { "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": 2356.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_e7b1f279ad3f7193ae68fc74" + "resolved_value": 2761.4444444444443, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f19a927835e2aa12a94f6279" }, { "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": 11606.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_d4d9c99c13e5ffddf9807229" + "resolved_value": 12256.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_46ba331006269a96f7aee844" }, { "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": 1797.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_64cb01bb1cff7752e7ac9fd6" + "resolved_value": 2131.222222222222, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_dd2ddbef54fc0ec48f61d7b0" }, { "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": 1214.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_c3cdf2a650039f3befb16629" + "resolved_value": 1475.3333333333333, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3ea2b4312343be8d41a37265" }, { "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": 958.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_03928eb7a88eb005e4e749af" + "resolved_value": 1073.7777777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_55cf1a8742443b096e81b33e" }, { "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": 654.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_4f7d04b28e459dfa105f04a2" + "resolved_value": 746.3333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6cd7a2f97a5e43ba25481719" }, { "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": 578.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_d6b8079542fdf9ba694c65d4" + "resolved_value": 605.7777777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3f50c2d6d58a3a45681f0c5d" }, { "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": 10672.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_58fdd30eacb059011b021576" + "resolved_value": 10945.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ead4e96f4e609a16cf1e53e" }, { "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": 12199.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_47d90f6b52d026e685875309" + "resolved_value": 12492.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6823b2987ba44d1b85428d2b" }, { "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": 12405.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_082b5365b7fdf6c1c7040844" + "resolved_value": 12979.666666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3a3fc258bd18da8c60177380" }, { "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": 15632.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_065a04ded463b0db36bc03f1" + "resolved_value": 16484.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_b75ef335d484f8dd9ae13a70" }, { "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": 14298.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_398a20f6c941d7755751b050" + "resolved_value": 15272.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fcd000da1af753b61c9ac5df" }, { "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": 17626.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_3d6203f0f1f7d8a09fbbd123" + "resolved_value": 19142.333333333332, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3d38fa50aa9bf0e85549ec9a" }, { "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": 12318.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_81b85753a70cc5e10a83f605" + "resolved_value": 13313.333333333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6697a9dc6c88a1a0b0472a1e" } ] }, @@ -5729,252 +5728,252 @@ { "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": 18896.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_e61e3d1fb68d75f854dd7925" + "resolved_value": 19073.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_8c1548028e499fa8399d1246" }, { "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": 22614.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_8d35301acbeaea0ec16d784b" + "resolved_value": 22775.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff2fef9bd96e583203e111d6" }, { "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": 41349.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_9d5313777ece292ab0076e87" + "resolved_value": 40009.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fee1fd2227a87871edfe2bfa" }, { "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": 40850.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_532aa299693f3fa7546b54ca" + "resolved_value": 39972.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b0427c86dc3df13761ab5b0" }, { "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": 42101.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_1bc71ee7fea828fe2503e115" + "resolved_value": 40518.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bfd9a57597b46f356ef9cfc9" }, { "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": 38379.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_5975a3ac278b3656e0f56800" + "resolved_value": 37118.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_328ed88b561971d4ee47d852" }, { "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": 38725.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa8e258f094fc3ec208b2813" + "resolved_value": 37177.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c50c761ddfaab3cbfba62bfd" }, { "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": 38124.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_031b8e5a3da66a77e7116170" + "resolved_value": 37164.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_74d32efc9f1984f60cbd9397" }, { "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": 33871.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_287bb8dc3393d9ebe342c045" + "resolved_value": 33309.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_90b7e15c6554b1c74e7055f3" }, { "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": 29950.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_9d97c8b17ae6e786901f969a" + "resolved_value": 29102.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_96f9b06f2d2afb65af9a224a" }, { "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": 28186.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa0e34a52ba5fb25f60b470c" + "resolved_value": 27534.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e65a50de282324e8c188863a" }, { "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": 25960.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_12f9a2c5aa63563eae9aef60" + "resolved_value": 25584.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_16f48d435925ffa44f4d6871" }, { "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": 26768.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_1df3a18d5e1e627972812530" + "resolved_value": 26502.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_93fd0534df01d1dade53397e" }, { "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": 23231.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_0c182b7ed2813f434c7faf96" + "resolved_value": 22927.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffb787487a36c86f94d25a25" }, { "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": 20598.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_89cd3e4f357479a172b9e1a4" + "resolved_value": 20334.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f4d504be6f184b7834f2687" }, { "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": 17650.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_1cfec0935e609d67288403ee" + "resolved_value": 17535.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_719022eef2836c069c4b02d0" }, { "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": 15499.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_14e996afeb0a61b020c8e38a" + "resolved_value": 15399.888888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b1d8f6516b32e39ecad3873" }, { "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": 12912.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_59b6b903ae94ade8466c9f8f" + "resolved_value": 12836.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_115a9ea1e35d76db13756149" }, { "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": 29288.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_0bedfcd27e528d6ad1ede930" + "resolved_value": 29027.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_255e8c862df5351282c29809" }, { "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": 33072.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_53248eeb98cd236f5f3474d3" + "resolved_value": 32427.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_32261034f242507c0a7337b3" }, { "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": 35834.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_e5dd88072bae31da148f1987" + "resolved_value": 34956.88888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6f40664df124c4dca50524b8" }, { "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": 38337.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9ceb07914176c0c6e3b7306" + "resolved_value": 37410.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_27b091b1a00bc33ab68139f8" }, { "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": 40556.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_f010d0b94b60241806a2ccac" + "resolved_value": 39910.333333333336, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_22b16b470c0b51499fb2f042" }, { "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": 40399.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_359b4b0c64a9f950a630fd06" + "resolved_value": 39368.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7dbca9e2f8508f1066399b73" }, { "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": 41858.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_010fe13b9bcf93223a51f16b" + "resolved_value": 40805.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_23cf62e7e58211e783c52d2e" } ] }, @@ -5984,12 +5983,12 @@ { "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": 14412.0, - "resolved_fact_period": "2025-05", - "resolved_fact_key": "ledger_aggregate_fact_v2_a2cdcfc2cd3c4f56e33bfba2" + "resolved_value": 14333.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e88b27e010e08ac8d36d0d30" } ] }, @@ -6969,14 +6968,14 @@ ] }, "ons.population.scotland_households_3plus_children": { - "status": "multi_fact", + "status": "signed_excluded", "candidates": [ { - "name": "ons/scotland_households_3plus_children", - "status": "multi_fact", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, - "error": "ledger_reference_compile_status_multi_fact" + "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." } ] }, @@ -6991,7 +6990,7 @@ "resolved_period": 2025, "resolved_value": 4316000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c9c67fe2978eaa513a44a926" + "resolved_fact_key": "ledger_aggregate_fact_v2_b2ee6bff131571b7dcd4c33c" } ] }, @@ -7006,7 +7005,7 @@ "resolved_period": 2025, "resolved_value": 4254000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e6c50ddf29ed1ab77864b6a2" + "resolved_fact_key": "ledger_aggregate_fact_v2_4178a72ada0e0b5b53fd62b3" } ] }, @@ -7021,7 +7020,7 @@ "resolved_period": 2025, "resolved_value": 813000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3ec0cf9defbe2ab83ab41571" + "resolved_fact_key": "ledger_aggregate_fact_v2_191e954854307c61fca2d539" } ] }, @@ -7036,7 +7035,7 @@ "resolved_period": 2025, "resolved_value": 8119000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b11f5e90017de17e52604807" + "resolved_fact_key": "ledger_aggregate_fact_v2_861314257d00193080069624" } ] }, @@ -7051,7 +7050,7 @@ "resolved_period": 2025, "resolved_value": 5439000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_12ff8cdd70354a89e79666d2" + "resolved_fact_key": "ledger_aggregate_fact_v2_04ac3660df720d6f8effbdb2" } ] }, @@ -7066,7 +7065,7 @@ "resolved_period": 2025, "resolved_value": 931000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b7f864011603a30bf3d9a36d" + "resolved_fact_key": "ledger_aggregate_fact_v2_3432d322cadb6a40f0c3ebc8" } ] }, @@ -7081,7 +7080,7 @@ "resolved_period": 2025, "resolved_value": 1848000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_a14d855449d9c8dc5e885d7e" + "resolved_fact_key": "ledger_aggregate_fact_v2_4d36f952f4dd650bcab7ba7f" } ] }, @@ -7096,7 +7095,7 @@ "resolved_period": 2025, "resolved_value": 1835000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e71a9da14a3e6459fb4280b3" + "resolved_fact_key": "ledger_aggregate_fact_v2_e9746f29548db6f6047842cb" } ] }, @@ -7111,7 +7110,7 @@ "resolved_period": 2025, "resolved_value": 1204000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_5dabc71ee334f3c3246258bf" + "resolved_fact_key": "ledger_aggregate_fact_v2_9c7f117f90bc24f073f4e14f" } ] }, @@ -7126,7 +7125,7 @@ "resolved_period": 2025, "resolved_value": 244000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b4156d9db1a22d31bfaa20ff" + "resolved_fact_key": "ledger_aggregate_fact_v2_a0cd8874e5334242ce7b8ce0" } ] }, @@ -7738,7 +7737,7 @@ "resolved_period": 2025, "resolved_value": 6758888.888888889, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1f95c868e686f543d161ff0" + "resolved_fact_key": "ledger_aggregate_fact_v2_3270b0f656838ddd01b1ac5f" } ] } @@ -7770,15 +7769,13 @@ "target_id": "hmrc.spi.property_income.amount_by_total_income_band", "status": "signed_excluded", "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 policyengine-uk-data PR #311 / issue policyengine-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." - } - ], - "multi_fact_rationales": [ + }, { "family": "ons_population", "target_id": "ons.population.scotland_households_3plus_children", - "candidate_name": "ons/scotland_households_3plus_children", - "status": "adjudication_pending", - "signed_rationale": "Remaining multi_fact is genuine: the selector reaches ONS mid-year population age rows for Scotland across six eligible periods, while the contract target is a household count with three or more children. No Ledger household-composition fact at or before 2025 is selected by the current contract, so Microcosm must not adjudicate a replacement source here." + "status": "signed_excluded", + "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." } - ] + ], + "multi_fact_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 d7cdb07f0..b256be72d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -5,7 +5,8 @@ "identity", "sum", "calendar_year_average", - "latest_plateau" + "latest_plateau", + "count_x_mean" ], "target_references": [ { @@ -3909,6 +3910,7 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.cgt_taxpayers_total", + "groupby_dimension": "hmrc.cgt_table1_line", "geography_level": "country", "geography_id": "K02000001" }, @@ -3920,7 +3922,7 @@ "contract_target_id": "hmrc.cgt.taxpayers_total", "measure_kind": "prepared_column" }, - "uprating_from_period": "2023", + "uprating_from_period": "2024", "uprating_to_period": 2025 }, { @@ -3928,6 +3930,7 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.cgt_gains_total", + "groupby_dimension": "hmrc.cgt_table1_line", "geography_level": "country", "geography_id": "K02000001" }, @@ -3939,7 +3942,7 @@ "contract_target_id": "hmrc.cgt.gains_total", "measure_kind": "prepared_column" }, - "uprating_from_period": "2023", + "uprating_from_period": "2024", "uprating_to_period": 2025 }, { @@ -4052,6 +4055,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 1 }, @@ -4066,7 +4072,8 @@ "contract_target_id": "dwp.uc.households_children_1", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4075,6 +4082,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 2 }, @@ -4089,7 +4099,8 @@ "contract_target_id": "dwp.uc.households_children_2", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4098,6 +4109,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 3 }, @@ -4112,7 +4126,8 @@ "contract_target_id": "dwp.uc.households_children_3", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4121,6 +4136,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 4 }, @@ -4135,7 +4153,8 @@ "contract_target_id": "dwp.uc.households_children_4", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4144,6 +4163,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": "5 or more" }, @@ -4158,7 +4180,8 @@ "contract_target_id": "dwp.uc.households_children_5_or_more", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4167,6 +4190,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Single, no children" }, @@ -4181,7 +4207,8 @@ "contract_target_id": "dwp.uc.households_single_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4190,6 +4217,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Single, with children" }, @@ -4204,7 +4234,8 @@ "contract_target_id": "dwp.uc.households_single_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4213,6 +4244,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Couple, no children" }, @@ -4227,7 +4261,8 @@ "contract_target_id": "dwp.uc.households_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4236,6 +4271,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Couple, with children" }, @@ -4250,7 +4288,8 @@ "contract_target_id": "dwp.uc.households_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4259,6 +4298,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a30.01 to \u00a3100.00" @@ -4274,7 +4317,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4283,6 +4327,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3100.01 to \u00a3200.00" @@ -4298,7 +4346,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4307,6 +4356,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31000.01 to \u00a31100.00" @@ -4322,7 +4375,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4331,6 +4385,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31100.01 to \u00a31200.00" @@ -4346,7 +4404,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4355,6 +4414,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31200.01 to \u00a31300.00" @@ -4370,7 +4433,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4379,6 +4443,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31300.01 to \u00a31400.00" @@ -4394,7 +4462,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4403,6 +4472,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31400.01 to \u00a31500.00" @@ -4418,7 +4491,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4427,6 +4501,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31500.01 to \u00a31600.00" @@ -4442,7 +4520,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4451,6 +4530,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31600.01 to \u00a31700.00" @@ -4466,7 +4549,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4475,6 +4559,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31700.01 to \u00a31800.00" @@ -4490,7 +4578,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4499,6 +4588,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31800.01 to \u00a31900.00" @@ -4514,7 +4607,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4523,6 +4617,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a31900.01 to \u00a32000.00" @@ -4538,7 +4636,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4547,6 +4646,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3200.01 to \u00a3300.00" @@ -4562,7 +4665,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4571,6 +4675,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a32000.01 to \u00a32100.00" @@ -4586,7 +4694,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4595,6 +4704,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a32100.01 to \u00a32200.00" @@ -4610,7 +4723,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4619,6 +4733,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a32200.01 to \u00a32300.00" @@ -4634,7 +4752,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4643,6 +4762,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a32300.01 to \u00a32400.00" @@ -4658,7 +4781,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4667,6 +4791,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a32400.01 to \u00a32500.00" @@ -4682,7 +4810,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4691,6 +4820,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3300.01 to \u00a3400.00" @@ -4706,7 +4839,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4715,6 +4849,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3400.01 to \u00a3500.00" @@ -4730,7 +4868,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4739,6 +4878,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3500.01 to \u00a3600.00" @@ -4754,7 +4897,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4763,6 +4907,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3600.01 to \u00a3700.00" @@ -4778,7 +4926,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4787,6 +4936,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3700.01 to \u00a3800.00" @@ -4802,7 +4955,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4811,6 +4965,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3800.01 to \u00a3900.00" @@ -4826,7 +4984,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4835,6 +4994,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children", "monthly_award_amount_bands": "\u00a3900.01 to \u00a31000.00" @@ -4850,7 +5013,8 @@ "contract_target_id": "dwp.uc.payment_distribution_single", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4859,6 +5023,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a30.01 to \u00a3100.00" @@ -4874,7 +5042,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4883,6 +5052,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3100.01 to \u00a3200.00" @@ -4898,7 +5071,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4907,6 +5081,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31000.01 to \u00a31100.00" @@ -4922,7 +5100,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4931,6 +5110,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31100.01 to \u00a31200.00" @@ -4946,7 +5129,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4955,6 +5139,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31200.01 to \u00a31300.00" @@ -4970,7 +5158,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -4979,6 +5168,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31300.01 to \u00a31400.00" @@ -4994,7 +5187,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5003,6 +5197,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31400.01 to \u00a31500.00" @@ -5018,7 +5216,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5027,6 +5226,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31500.01 to \u00a31600.00" @@ -5042,7 +5245,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5051,6 +5255,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31600.01 to \u00a31700.00" @@ -5066,7 +5274,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5075,6 +5284,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31700.01 to \u00a31800.00" @@ -5090,7 +5303,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5099,6 +5313,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31800.01 to \u00a31900.00" @@ -5114,7 +5332,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5123,6 +5342,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a31900.01 to \u00a32000.00" @@ -5138,7 +5361,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5147,6 +5371,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3200.01 to \u00a3300.00" @@ -5162,7 +5390,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5171,6 +5400,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a32000.01 to \u00a32100.00" @@ -5186,7 +5419,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5195,6 +5429,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a32100.01 to \u00a32200.00" @@ -5210,7 +5448,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5219,6 +5458,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a32200.01 to \u00a32300.00" @@ -5234,7 +5477,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5243,6 +5487,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a32300.01 to \u00a32400.00" @@ -5258,7 +5506,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5267,6 +5516,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a32400.01 to \u00a32500.00" @@ -5282,7 +5535,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5291,6 +5545,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3300.01 to \u00a3400.00" @@ -5306,7 +5564,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5315,6 +5574,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3400.01 to \u00a3500.00" @@ -5330,7 +5593,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5339,6 +5603,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3500.01 to \u00a3600.00" @@ -5354,7 +5622,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5363,6 +5632,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3600.01 to \u00a3700.00" @@ -5378,7 +5651,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5387,6 +5661,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3700.01 to \u00a3800.00" @@ -5402,7 +5680,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5411,6 +5690,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3800.01 to \u00a3900.00" @@ -5426,7 +5709,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5435,6 +5719,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children", "monthly_award_amount_bands": "\u00a3900.01 to \u00a31000.00" @@ -5450,7 +5738,8 @@ "contract_target_id": "dwp.uc.payment_distribution_lone_parent", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5459,6 +5748,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a30.01 to \u00a3100.00" @@ -5474,7 +5767,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5483,6 +5777,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3100.01 to \u00a3200.00" @@ -5498,7 +5796,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5507,6 +5806,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31000.01 to \u00a31100.00" @@ -5522,7 +5825,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5531,6 +5835,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31100.01 to \u00a31200.00" @@ -5546,7 +5854,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5555,6 +5864,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31200.01 to \u00a31300.00" @@ -5570,7 +5883,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5579,6 +5893,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31300.01 to \u00a31400.00" @@ -5594,7 +5912,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5603,6 +5922,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31400.01 to \u00a31500.00" @@ -5618,7 +5941,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5627,6 +5951,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31500.01 to \u00a31600.00" @@ -5642,7 +5970,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5651,6 +5980,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31600.01 to \u00a31700.00" @@ -5666,7 +5999,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5675,6 +6009,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31700.01 to \u00a31800.00" @@ -5690,7 +6028,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5699,6 +6038,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31800.01 to \u00a31900.00" @@ -5714,7 +6057,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5723,6 +6067,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a31900.01 to \u00a32000.00" @@ -5738,7 +6086,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5747,6 +6096,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3200.01 to \u00a3300.00" @@ -5762,7 +6115,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5771,6 +6125,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a32000.01 to \u00a32100.00" @@ -5786,7 +6144,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5795,6 +6154,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a32100.01 to \u00a32200.00" @@ -5810,7 +6173,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5819,6 +6183,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a32200.01 to \u00a32300.00" @@ -5834,7 +6202,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5843,6 +6212,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a32300.01 to \u00a32400.00" @@ -5858,7 +6231,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5867,6 +6241,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a32400.01 to \u00a32500.00" @@ -5882,7 +6260,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5891,6 +6270,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3300.01 to \u00a3400.00" @@ -5906,7 +6289,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5915,6 +6299,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3400.01 to \u00a3500.00" @@ -5930,7 +6318,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5939,6 +6328,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3500.01 to \u00a3600.00" @@ -5954,7 +6347,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5963,6 +6357,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3600.01 to \u00a3700.00" @@ -5978,7 +6376,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -5987,6 +6386,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3700.01 to \u00a3800.00" @@ -6002,7 +6405,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6011,6 +6415,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3800.01 to \u00a3900.00" @@ -6026,7 +6434,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6035,6 +6444,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children", "monthly_award_amount_bands": "\u00a3900.01 to \u00a31000.00" @@ -6050,7 +6463,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_no_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6059,6 +6473,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a30.01 to \u00a3100.00" @@ -6074,7 +6492,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6083,6 +6502,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3100.01 to \u00a3200.00" @@ -6098,7 +6521,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6107,6 +6531,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31000.01 to \u00a31100.00" @@ -6122,7 +6550,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6131,6 +6560,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31100.01 to \u00a31200.00" @@ -6146,7 +6579,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6155,6 +6589,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31200.01 to \u00a31300.00" @@ -6170,7 +6608,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6179,6 +6618,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31300.01 to \u00a31400.00" @@ -6194,7 +6637,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6203,6 +6647,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31400.01 to \u00a31500.00" @@ -6218,7 +6666,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6227,6 +6676,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31500.01 to \u00a31600.00" @@ -6242,7 +6695,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6251,6 +6705,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31600.01 to \u00a31700.00" @@ -6266,7 +6724,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6275,6 +6734,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31700.01 to \u00a31800.00" @@ -6290,7 +6753,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6299,6 +6763,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31800.01 to \u00a31900.00" @@ -6314,7 +6782,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6323,6 +6792,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a31900.01 to \u00a32000.00" @@ -6338,7 +6811,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6347,6 +6821,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3200.01 to \u00a3300.00" @@ -6362,7 +6840,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6371,6 +6850,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a32000.01 to \u00a32100.00" @@ -6386,7 +6869,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6395,6 +6879,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a32100.01 to \u00a32200.00" @@ -6410,7 +6898,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6419,6 +6908,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a32200.01 to \u00a32300.00" @@ -6434,7 +6927,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6443,6 +6937,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a32300.01 to \u00a32400.00" @@ -6458,7 +6956,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6467,6 +6966,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a32400.01 to \u00a32500.00" @@ -6482,7 +6985,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6491,6 +6995,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3300.01 to \u00a3400.00" @@ -6506,7 +7014,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6515,6 +7024,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3400.01 to \u00a3500.00" @@ -6530,7 +7043,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6539,6 +7053,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3500.01 to \u00a3600.00" @@ -6554,7 +7072,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6563,6 +7082,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3600.01 to \u00a3700.00" @@ -6578,7 +7101,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6587,6 +7111,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3700.01 to \u00a3800.00" @@ -6602,7 +7130,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6611,6 +7140,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3800.01 to \u00a3900.00" @@ -6626,7 +7159,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6635,6 +7169,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children", "monthly_award_amount_bands": "\u00a3900.01 to \u00a31000.00" @@ -6650,7 +7188,8 @@ "contract_target_id": "dwp.uc.payment_distribution_couple_with_children", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -6659,13 +7198,16 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_youngest_child_age", + "dimensions": [ + "age_of_youngest_child_bands_and_single_year" + ], "dimension_values": { "age_of_youngest_child_bands_and_single_year": 0 }, "geography_level": "country", "geography_id": "S92000003" }, - "entity": "household", + "entity": "benunit", "measure": "dwp/scotland_uc_households_child_under_1", "family": "dwp_universal_credit", "period": 2025, @@ -6673,7 +7215,8 @@ "contract_target_id": "dwp.uc.scotland_households_child_under_1", "measure_kind": "prepared_column" }, - "uprating_from_period": "2025-05", + "value_operation": "calendar_year_average", + "uprating_from_period": "2025-12", "uprating_to_period": 2025 }, { @@ -9772,6 +10315,8 @@ "ledger_selector": { "source_name": "dwp", "source_concept": "dwp.uc_benefit_units", + "source_measure_id": "total_units", + "groupby_dimension": "dwp.uc_deductions_month", "geography_level": "country", "geography_id": "K03000001" }, diff --git a/packages/microcosm-build/src/microcosm/build/uk/uk_local_target_census.json b/packages/microcosm-build/src/microcosm/build/uk/uk_local_target_census.json index 82ca13545..5e7b238ec 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/uk_local_target_census.json +++ b/packages/microcosm-build/src/microcosm/build/uk/uk_local_target_census.json @@ -524,9 +524,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "Unbanded area statistics in the pinned Ledger fact feed supply the local HMRC count targets directly and the amount targets via the signed count_x_mean construction. The feed publishes SPI target count/mean measures for 650/650 constituencies except self_employment_income_mean at E14001416 (so that one amount row is signed deferred), and for 359/361 crosswalk local authorities; E06000027 has only median SPI measures and E06000053 has no SPI local-authority target-measure rows. This remains a different surface from the 208 banded Total Income facts held fenced by the national adjudication.", @@ -545,9 +546,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned Ledger fact feed carries the PCON24 constituency population age specs for all 650 constituencies across the ONS, NRS, and NISRA publisher legs. Mid-year estimates cover the total usual-resident population \u2014 see the population_universe_private_households adjudication.", @@ -566,9 +568,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned Ledger fact feed carries local-authority population age specs for all 361 crosswalk local authorities. Covers the total usual-resident population \u2014 see the population_universe_private_households adjudication.", @@ -630,9 +633,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned Ledger fact feed carries DWP Stat-Xplore UC household facts for 632/650 constituencies and 350/361 local authorities, plus the four constituency child-bucket specs. DWP UC official statistics in this feed cover Great Britain; the 18 Northern Ireland constituencies and 11 Northern Ireland local authorities are signed deferred. DWP counts UC claim households \u2014 see the uc_unit_vs_household_grain adjudication.", @@ -651,9 +655,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "Model-based estimates built from the Family Resources Survey \u2014 see the frs_model_based_target_circularity adjudication. The BHC and AHC measures are independently modelled and not directly comparable \u2014 see the ons_bhc_ahc_noncomparable adjudication. MSOA-to-local-authority aggregation is signed deferred for this run; England and Wales only.", @@ -675,9 +680,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned Ledger fact feed carries tenure specs for all 361 crosswalk local authorities across ONS Census 2021, NRS Census 2022, and NISRA Census 2021 publisher legs. Private-rent and social-rent tenure rows are additive over publisher-native subclasses and compile through the signed sum operation.", @@ -696,9 +702,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "PIPR publishes average rent price levels, not additive rent totals. All 361 local-authority cells remain signed deferred for the 2025 compile: 314 are after-period, four English cells have no matching LA id, 32 Scottish cells are represented only at BRMA grain without a signed translation, and 11 Northern Ireland cells are absent.", @@ -719,9 +726,10 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "facts_sha256": "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48", + "facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "source_commit": "33ca98a", + "manifest_sha256": "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0", + "source_commit": "6fb700e", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned feed record-set spec uk.local_geography.council_tax_stock.by_local_authority.v1 supplies 2,541 active band cells: bands B-G cover all 318 England/Wales crosswalk authorities, band A covers 317 because E09000001 is suppressed, and band H covers 316 because W06000019 and W06000024 are absent. Scotland's 32 authorities have no VOA band-count rows and Northern Ireland's 11 LGDs use domestic rates; all 347 absent cells are signed deferrals. The feed has no comparable 2025 LA net series across the roster, so council_tax/net is not declared.", 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 1a17ff7e4..90c9739c9 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 @@ -3080,7 +3080,8 @@ }, "ledger_selector": { "source_name": "hmrc", - "source_concept": "hmrc.cgt_taxpayers_total" + "source_concept": "hmrc.cgt_taxpayers_total", + "groupby_dimension": "hmrc.cgt_table1_line" } }, { @@ -3121,7 +3122,8 @@ }, "ledger_selector": { "source_name": "hmrc", - "source_concept": "hmrc.cgt_gains_total" + "source_concept": "hmrc.cgt_gains_total", + "groupby_dimension": "hmrc.cgt_table1_line" } }, { @@ -3464,6 +3466,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 1 } @@ -3520,6 +3525,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 2 } @@ -3576,6 +3584,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 3 } @@ -3632,6 +3643,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": 4 } @@ -3688,6 +3702,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_number_of_children", + "dimensions": [ + "number_of_children" + ], "dimension_values": { "number_of_children": "5 or more" } @@ -3739,6 +3756,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Single, no children" } @@ -3790,6 +3810,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Single, with children" } @@ -3841,6 +3864,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Couple, no children" } @@ -3892,6 +3918,9 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_family_type", + "dimensions": [ + "family_type" + ], "dimension_values": { "family_type": "Couple, with children" } @@ -3943,6 +3972,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, no children" } @@ -3994,6 +4027,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Single, with children" } @@ -4045,6 +4082,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, no children" } @@ -4096,6 +4137,10 @@ "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_monthly_award_band", + "dimensions": [ + "family_type", + "monthly_award_amount_bands" + ], "dimension_values": { "family_type": "Couple, with children" } @@ -4108,8 +4153,8 @@ "country" ], "measurement": { - "entity": "household", - "concept": "uk.household.count", + "entity": "benunit", + "concept": "uk.benefit_unit.count", "filters": [ { "concept": "uk.geography.region", @@ -4130,8 +4175,9 @@ "bindings": { "policyengine": { "metric_name": "dwp/scotland_uc_households_child_under_1", - "reduce": "any", - "household_conditions": [ + "value_variable": "benunit_count", + "from_entity": "benunit", + "filters": [ { "variable": "region", "operator": "==", @@ -4139,32 +4185,30 @@ }, { "variable": "universal_credit", - "entity": "benunit", - "reduce": "any", "operator": ">", "value": 0 }, { - "variable": "age", - "entity": "person", - "reduce": "any_child_under", + "variable": "youngest_child_age", "operator": "<", "value": 1 } ], - "value_variable": "household_count", - "notes": "Scottish UC households with a child under 1 (compute/benefits.py:24-30)." + "notes": "Prepared benefit-unit count for Scottish UC units whose youngest child is under 1. The Chronicle monthly series is averaged over April-December 2025, matching the rest of the DWP Universal Credit family." }, "axiom": { "metric_name": "dwp/scotland_uc_households_child_under_1", "status": "pending", - "value_rule": "uk.household.count" + "value_rule": "uk.benefit_unit.count" } }, "ledger_selector": { "source_name": "dwp", "source_concept": "dwp.uc_households", "groupby_dimension": "dwp.uc_youngest_child_age", + "dimensions": [ + "age_of_youngest_child_bands_and_single_year" + ], "dimension_values": { "age_of_youngest_child_bands_and_single_year": 0 } @@ -10618,7 +10662,7 @@ "value": 0 } ], - "notes": "Prepared benefit-unit indicator for receipt of Universal Credit; DWP household means the UC unit of assessment, not an ONS household." + "notes": "Prepared benefit-unit indicator for receipt of Universal Credit; DWP household means the UC unit of assessment, not an ONS household. This row binds DWP UC deductions statistics Table 1 total units. Its April-December 2025 calendar-year average is 6,758,889, 1.45% below the Stat-Xplore family-type sum of 6,858,287; chronicle#247 tracks a common-cube total." }, "axiom": { "metric_name": "dwp/uc/households", @@ -10628,7 +10672,9 @@ }, "ledger_selector": { "source_name": "dwp", - "source_concept": "dwp.uc_benefit_units" + "source_concept": "dwp.uc_benefit_units", + "source_measure_id": "total_units", + "groupby_dimension": "dwp.uc_deductions_month" } }, { diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/local_target_census.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/local_target_census.py index 32e6ddd6d..5923b14d4 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/local_target_census.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/local_target_census.py @@ -83,10 +83,13 @@ "artifact": ".codex-work/consumer_facts_uk.jsonl", "manifest": ".codex-work/consumer_facts_uk_manifest.json", "facts_sha256": ( - "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48" + "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f" + ), + "manifest_sha256": ( + "dcda51d6496aea67f768a284e7955c7520e7c8b91e2bed3569f247567b7153f0" ), "source_repo": "PolicyEngine/chronicle", - "source_commit": "33ca98a", + "source_commit": "6fb700e", "build": "build-bundle --suite uk -> build-consumer-artifact", } diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/local_validation_levels.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/local_validation_levels.py index 1e8fbd7ef..93d6b9de1 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/local_validation_levels.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/local_validation_levels.py @@ -30,7 +30,7 @@ def _validate(payload: Any) -> None: raise ValueError("UK local validation-level register_kind is invalid.") feed = payload.get("source_feed") if not isinstance(feed, dict) or feed.get("sha256") != ( - "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48" + "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f" ): raise ValueError("UK local validation-level feed pin is missing or stale.") rows = payload.get("rows") diff --git a/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl b/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl index 54781fa5c..da610a263 100644 --- a/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl +++ b/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl @@ -7,3 +7,16 @@ {"aggregate_fact_key": "ledger.aggregate_fact.v2:882329821c90dc683aa778d8", "aggregation": {"method": "sum"}, "assertion": "observation", "concept_alignment": {"authority": "slc", "canonical_concept": "slc.student_loan_net_repayments_plan_2_full_time", "concept_alignment_key": "ledger.concept_alignment.v2:5a6738918c70cab40798a5ed", "evidence_notes": "Student loans in England FY2024-25 (corrected tables, slcsp012025_Corrected), Table 1A ICR balance sheet, row 'Net repayments posted during the financial year', financial year 2024-25 column block, column: Plan 2 Full-time. GBP million.", "evidence_url": "https://www.gov.uk/government/statistics/student-loans-in-england-2024-to-2025", "relation": "source_label", "source_concept": "slc.student_loan_net_repayments_plan_2_full_time"}, "dimension_set_key": "ledger.dimension_set.v2:44136fa355b3678a1146ad16", "dimensions": {}, "entity": {"name": "person", "role": "student_loan_borrower"}, "geography": {"id": "E92000001", "level": "country", "vintage": "current"}, "label": "England 2024 fiscal year sum slc student loan net repayments plan 2 full time for person [slc Student loans in England, financial year 2024-25 (corrected tables), Table 1A slcsp012025_Corrected.xlsx slcsp01_2025_corrected]", "layout": {"groupby_dimension": "slc.repayment_plan", "groupby_ordinal": 0, "groupby_value_id": "net_repayments", "groupby_value_label": "Net repayments posted during the financial year", "measure_id": "plan_2_full_time", "measure_label": "Net repayments FY2024-25, Plan 2 Full-time", "measure_ordinal": 1, "record_set_id": "slc.repayments_2025.table_1a.fy2024", "record_set_spec_hash": "b748f6aeb2b7ad68bfb560a9", "record_set_spec_id": "slc.repayments_2025.table_1a.fy2024.v1", "source_column_id": "plan_2_full_time", "source_row_id": "net_repayments", "table_record_kind": "total"}, "legacy_fact_key": "ledger.fact.v1:a959c4f2a5576cd283af852a", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:0f682109e58dfad1ad28acd6", "ledger.source_cell.v1:60e6539baafd94e56648671a", "ledger.source_cell.v1:446cc4b0c7a9f20af575ec37", "ledger.source_cell.v1:b3d5f4758ba698ba4a4578d4"], "source_record_id": "slc.repayments_2025.table_1a.fy2024.net_repayments.plan_2_full_time", "source_row_keys": []}, "observed_measure": {"source_concept": "slc.student_loan_net_repayments_plan_2_full_time", "source_measure_id": "plan_2_full_time", "source_name": "slc", "source_table": "Student loans in England, financial year 2024-25 (corrected tables), Table 1A", "unit": "gbp"}, "observed_measure_key": "ledger.observed_measure.v2:ea46f749cb24645a1742ac79", "period": {"type": "fiscal_year", "value": 2024}, "provenance_class": "administrative", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:61a154dcb37f426f85982478", "source": {"extracted_at": "2026-08-08", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/slc/slc-student-loan-repayments-england-2025/2025/a9ee065ba2d6af4be8584022ac50302f22f7229919e4171cf132039b0ca26aac/slcsp012025_Corrected.xlsx", "raw_r2_uri": "r2://ledger-raw/raw/slc/slc-student-loan-repayments-england-2025/2025/a9ee065ba2d6af4be8584022ac50302f22f7229919e4171cf132039b0ca26aac/slcsp012025_Corrected.xlsx", "source_file": "slcsp012025_Corrected.xlsx", "source_name": "slc", "source_sha256": "a9ee065ba2d6af4be8584022ac50302f22f7229919e4171cf132039b0ca26aac", "source_size_bytes": 332185, "source_table": "Student loans in England, financial year 2024-25 (corrected tables), Table 1A", "url": "https://assets.publishing.service.gov.uk/media/6943ee619273c48f554cf5c5/slcsp012025_Corrected.xlsx", "vintage": "slcsp01_2025_corrected"}, "source_release_key": "ledger.source_release.v2:91e47f96684950159cb0210d", "source_series_key": "ledger.source_series.v2:513fa8b0e1881aafe14a47bf", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:02442c1ef61cbc68cc27ca5c", "universe_constraints": {"domain": "student_loans"}, "value": 2683104312.0299997, "value_type": "number"} {"aggregate_fact_key": "ledger.aggregate_fact.v2:a82c84f67b40867564d2c847", "aggregation": {"method": "sum"}, "assertion": "observation", "concept_alignment": {"authority": "hmrc", "canonical_concept": "hmrc.spi_employment_income_amount", "concept_alignment_key": "ledger.concept_alignment.v2:954e6c895535b23e4c7805cb", "evidence_notes": "SPI collated tables 2023-24, Table_3_6, column: Employment income (Amount); taxpayers in thousands, amounts GBP million.", "evidence_url": "https://www.gov.uk/government/statistics/personal-incomes-statistics-for-the-tax-year-2023-to-2024", "relation": "source_label", "source_concept": "hmrc.spi_employment_income_amount"}, "dimension_set_key": "ledger.dimension_set.v2:2abee80869ae40d61ee490c3", "dimensions": {"total_income_lower_bound": 12570}, "entity": {"name": "person", "role": "taxpayer"}, "geography": {"id": "K02000001", "level": "country", "vintage": "current"}, "label": "United Kingdom 2023 tax year sum hmrc spi employment income amount for person (total income lower bound=12570) [hmrc SPI collated Tables 3.1 to 3.11, tax year 2023-24: income by range of total income Collated_Tables_3_1_to_3_11_2324.ods spi_2023_24]", "layout": {"groupby_dimension": "hmrc.total_income_band", "groupby_ordinal": 0, "groupby_value_id": "band_12570", "groupby_value_label": "Total income from GBP 12 570", "measure_id": "employment_amount", "measure_label": "Employment (amount)", "measure_ordinal": 3, "record_set_id": "hmrc.spi_2324.table_3_6", "record_set_spec_hash": "5d819678ed0074660bcee770", "record_set_spec_id": "hmrc.spi_2324.table_3_6.v1", "source_column_id": "employment_amount", "source_row_id": "band_12570", "table_record_kind": "detail"}, "legacy_fact_key": "ledger.fact.v1:18e235114b5444256783fd7a", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:cfbcf3282db1fcb71a277b00", "ledger.source_cell.v1:057369c1997d122b69f47027"], "source_record_id": "hmrc.spi_2324.table_3_6.band_12570.employment_amount", "source_row_keys": []}, "observed_measure": {"source_concept": "hmrc.spi_employment_income_amount", "source_measure_id": "employment_amount", "source_name": "hmrc", "source_table": "SPI collated Tables 3.1 to 3.11, tax year 2023-24: income by range of total income", "unit": "gbp"}, "observed_measure_key": "ledger.observed_measure.v2:631d0596c3c14bb4621a9da2", "period": {"type": "tax_year", "value": 2023}, "provenance_class": "survey_aggregate", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:debc6506b4121d8c968f8b4b", "source": {"extracted_at": "2026-08-06", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/hmrc/hmrc-spi-income-bands-2023-24/2024/ad063b06b2bdeef8600dbbb09d48153337a4966f8c7eea50df7a2e0304ebd73e/Collated_Tables_3_1_to_3_11_2324.ods", "raw_r2_uri": "r2://ledger-raw/raw/hmrc/hmrc-spi-income-bands-2023-24/2024/ad063b06b2bdeef8600dbbb09d48153337a4966f8c7eea50df7a2e0304ebd73e/Collated_Tables_3_1_to_3_11_2324.ods", "source_file": "Collated_Tables_3_1_to_3_11_2324.ods", "source_name": "hmrc", "source_sha256": "ad063b06b2bdeef8600dbbb09d48153337a4966f8c7eea50df7a2e0304ebd73e", "source_size_bytes": 166693, "source_table": "SPI collated Tables 3.1 to 3.11, tax year 2023-24: income by range of total income", "url": "https://assets.publishing.service.gov.uk/media/69f1f12d2fae53a03709682f/Collated_Tables_3_1_to_3_11_2324.ods", "vintage": "spi_2023_24"}, "source_release_key": "ledger.source_release.v2:cf26a12e28615db0aa77c564", "source_series_key": "ledger.source_series.v2:90b4b7a93b4bedd73c4fd852", "survey_instrument": "Survey of Personal Incomes", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:1b19141149ccab3a1cc4207e", "universe_constraints": {"constraints": [{"operator": "==", "role": "filter", "value": 12570, "variable": "total_income_lower_bound"}], "domain": "personal_incomes"}, "value": 16900000000, "value_type": "integer"} {"aggregate_fact_key": "ledger.aggregate_fact.v2:d928e7da0fbfe088ca1a30d7", "aggregation": {"method": "sum"}, "assertion": "source_projection", "concept_alignment": {"authority": "obr", "canonical_concept": "obr.income_tax", "concept_alignment_key": "ledger.concept_alignment.v2:c6c41e9a05252a482bf75215", "evidence_notes": "OBR EFO March 2026 detailed forecast tables, sheet 3.4, row 6 ('Income tax (gross of tax credits)'), GBP billion.", "evidence_url": "https://obr.uk/download/march-2026-economic-and-fiscal-outlook-detailed-forecast-tables-receipts/", "relation": "source_label", "source_concept": "obr.income_tax"}, "dimension_set_key": "ledger.dimension_set.v2:44136fa355b3678a1146ad16", "dimensions": {}, "entity": {"name": "person", "role": "resident_population"}, "geography": {"id": "K02000001", "level": "country", "vintage": "current"}, "label": "United Kingdom 2025 fiscal year projected sum obr income tax for person [obr EFO March 2026 detailed forecast tables: receipts efo_receipts.xlsx efo_march_2026]", "layout": {"groupby_dimension": "obr.efo_line", "groupby_ordinal": 0, "groupby_value_id": "income_tax", "groupby_value_label": "Income tax (gross of tax credits)", "measure_id": "amount", "measure_label": "Income tax (gross of tax credits), FY2025-26", "measure_ordinal": 0, "record_set_id": "obr.efo_2026_03.receipts.income_tax.fy2025", "record_set_spec_hash": "e2d3c601ace5447a5fe449bc", "record_set_spec_id": "obr.efo_2026_03.receipts.income_tax.fy2025.v1", "source_column_id": "amount", "source_row_id": "income_tax", "table_record_kind": "total"}, "legacy_fact_key": "ledger.fact.v1:ac779b21d033c2c724a112ca", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:916eb6e55cfdecb1aaae6b03", "ledger.source_cell.v1:487ced430603f1287c1595a1"], "source_record_id": "obr.efo_2026_03.receipts.income_tax.fy2025.income_tax.amount", "source_row_keys": []}, "observed_measure": {"source_concept": "obr.income_tax", "source_measure_id": "amount", "source_name": "obr", "source_table": "EFO March 2026 detailed forecast tables: receipts", "unit": "gbp"}, "observed_measure_key": "ledger.observed_measure.v2:954247698e8178993728e76b", "period": {"type": "fiscal_year", "value": 2025}, "provenance_class": "model_output", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:1cda5b118cdb34e16de09a41", "source": {"extracted_at": "2026-08-06", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/obr/obr-efo-receipts-march-2026/2026/f65b6cb7f96931d4abd85940794eb60f6f65afca8bbf16c74a4548bf92766a28/efo_receipts.xlsx", "raw_r2_uri": "r2://ledger-raw/raw/obr/obr-efo-receipts-march-2026/2026/f65b6cb7f96931d4abd85940794eb60f6f65afca8bbf16c74a4548bf92766a28/efo_receipts.xlsx", "source_file": "efo_receipts.xlsx", "source_name": "obr", "source_sha256": "f65b6cb7f96931d4abd85940794eb60f6f65afca8bbf16c74a4548bf92766a28", "source_size_bytes": 187899, "source_table": "EFO March 2026 detailed forecast tables: receipts", "url": "https://obr.uk/download/march-2026-economic-and-fiscal-outlook-detailed-forecast-tables-receipts/", "vintage": "efo_march_2026"}, "source_release_key": "ledger.source_release.v2:cd7332ed9168974f4875f7c7", "source_series_key": "ledger.source_series.v2:dae31655351be8d2e0736a5d", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:ecb00e907376ba856934e4ad", "universe_constraints": {"domain": "public_sector_finances"}, "value": 331437583074.4429, "value_type": "number"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:a328029c7fdf199c7bb8ed72","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-04 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"April 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_04.total_units","record_set_spec_hash":"4b5a84f57f36e8654216696a","record_set_spec_id":"dwp.uc_deductions.month2025_04.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:460f79382edab88773973ef5","lineage":{"source_cell_keys":["ledger.source_cell.v1:dd1d91de62f0f227a5d2158c","ledger.source_cell.v1:43004e85396ce7be9004f6d1"],"source_record_id":"dwp.uc_deductions.month2025_04.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-04"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:e4d7cc18902f0908808e62ec","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:90803eebc1970c036317afd2","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6380000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:8166527e94709e1cf6f05d83","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-05 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"May 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_05.total_units","record_set_spec_hash":"0c949577abc5d27616f8349d","record_set_spec_id":"dwp.uc_deductions.month2025_05.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:9e623691a35d8e3b1bde5368","lineage":{"source_cell_keys":["ledger.source_cell.v1:7e171e5eb2301b4bb9fc3d1b","ledger.source_cell.v1:b181dacd39f539b014c2b1ff"],"source_record_id":"dwp.uc_deductions.month2025_05.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-05"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:8fd726b2e9e0a4f811e835e7","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:2b33c933b0135dfa7ed509e4","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6600000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:a90579c0ebd5dbf68afff710","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-06 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"June 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_06.total_units","record_set_spec_hash":"28c08eaae7fbb7ad17c1ac13","record_set_spec_id":"dwp.uc_deductions.month2025_06.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:422b2ea82994dae684f67b76","lineage":{"source_cell_keys":["ledger.source_cell.v1:187cc3e9db9f8b0be51eaf51","ledger.source_cell.v1:cfed2d23ccf618b5ab6aebe6"],"source_record_id":"dwp.uc_deductions.month2025_06.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-06"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:1c029a40f45e74ca403873b5","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:ae7cf0037f9e218e85e35c73","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6600000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:d941d4d411e201f422109b86","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-07 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"July 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_07.total_units","record_set_spec_hash":"340bf32fe9ab41eb16239dd6","record_set_spec_id":"dwp.uc_deductions.month2025_07.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:e487647ff402c5001b8073dc","lineage":{"source_cell_keys":["ledger.source_cell.v1:89a075156cfc8d032f47b86b","ledger.source_cell.v1:e550caea5042fa74aa2dec68"],"source_record_id":"dwp.uc_deductions.month2025_07.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-07"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:4c90cf3499b64cce5b22397d","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:91c69f13e601d44a6d06f319","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6600000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:ade75a0fb6b3ed6458572b31","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-08 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"August 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_08.total_units","record_set_spec_hash":"b9e0181d5c9445df25901f77","record_set_spec_id":"dwp.uc_deductions.month2025_08.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:963853d12edc803f7a330997","lineage":{"source_cell_keys":["ledger.source_cell.v1:f5ee3feedf046059caacb746","ledger.source_cell.v1:56677aaa6b0d4dfe8b94edf4"],"source_record_id":"dwp.uc_deductions.month2025_08.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-08"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:52bab6c2d4d29a967fd77aa1","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:12208a0616c70228706137fb","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6600000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:a9c3416e28feeef8e244bb05","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-09 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"September 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_09.total_units","record_set_spec_hash":"c0ed641837240192393c72fc","record_set_spec_id":"dwp.uc_deductions.month2025_09.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:0179c54da44d6faf702d48c6","lineage":{"source_cell_keys":["ledger.source_cell.v1:eb5385892a237a0f74d03fbd","ledger.source_cell.v1:29737e7d00ba6bee57052178"],"source_record_id":"dwp.uc_deductions.month2025_09.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-09"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:c0186e43ac2877c66fb53791","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:59c6763a019f8187de881a1f","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6960000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:e903b85f11e958e665e109ce","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-10 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"October 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_10.total_units","record_set_spec_hash":"e363a40ffe8ba5be1d5d1374","record_set_spec_id":"dwp.uc_deductions.month2025_10.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:08fa70b4c9a1e3c9786f3a07","lineage":{"source_cell_keys":["ledger.source_cell.v1:eb41b6281a4c461864a78e92","ledger.source_cell.v1:e24183b55c7b9706b6845c3f"],"source_record_id":"dwp.uc_deductions.month2025_10.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-10"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:7a65f23de0b76a649e66f052","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:368a9e8dbf1a2f98d4553d7a","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6960000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:3f7a2cac5cb15ff130737128","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-11 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"November 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_11.total_units","record_set_spec_hash":"4aad47485f95ab3d7d4d1c7b","record_set_spec_id":"dwp.uc_deductions.month2025_11.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:626e91b656d1641442c0f52b","lineage":{"source_cell_keys":["ledger.source_cell.v1:4c67a56211c72ee9c72e24b1","ledger.source_cell.v1:9d66ea77298496b49d57e5eb"],"source_record_id":"dwp.uc_deductions.month2025_11.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-11"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:95d829a31671e6c36f7dea1c","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:c56f7dc6f3c50e99ab7f9bef","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":6960000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:3270b0f656838ddd01b1ac5f","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:f926aa77f065d747d171dac7","evidence_notes":"Derived within Table 1 as households with a deduction divided by the published share, rounded to 10,000. DWP household means a UC benefit unit, not an ONS household; see policyengine-uk-data#457.","evidence_url":"https://www.gov.uk/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-deductions-statistics-march-2025-to-february-2026","relation":"source_label","source_concept":"dwp.uc_benefit_units"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-12 month count dwp uc benefit units for benefit unit [dwp Universal Credit deductions statistics March 2025 to February 2026, Table 1 universal-credit-deductions-march-2025-to-february-2026.ods uc_deductions_2026_05_12]","layout":{"groupby_dimension":"dwp.uc_deductions_month","groupby_ordinal":0,"groupby_value_id":"month","groupby_value_label":"December 2025","measure_id":"total_units","measure_label":"Total UC benefit units","measure_ordinal":0,"record_set_id":"dwp.uc_deductions.month2025_12.total_units","record_set_spec_hash":"16402b5f5a5582752fcbed2f","record_set_spec_id":"dwp.uc_deductions.month2025_12.total_units.v1","source_column_id":"total_units","source_row_id":"month","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:50f5e4ff94e17c8653a224d6","lineage":{"source_cell_keys":["ledger.source_cell.v1:f8d9331a5f2fdc078091e6d3","ledger.source_cell.v1:4e93cb84089e9349b2920ecb"],"source_record_id":"dwp.uc_deductions.month2025_12.total_units.month.total_units","source_row_keys":[]},"observed_measure":{"source_concept":"dwp.uc_benefit_units","source_measure_id":"total_units","source_name":"dwp","source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:33357036d21a31ac02d72984","period":{"type":"month","value":"2025-12"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:64e68c0ee81b5671623a62da","source":{"extracted_at":"2026-08-19","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-deductions-march-2025-february-2026/2026/307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b/universal-credit-deductions-march-2025-to-february-2026.ods","source_file":"universal-credit-deductions-march-2025-to-february-2026.ods","source_name":"dwp","source_sha256":"307ec8fa49a1f1e23db3c59f1282e16609de03444e501824e204b4151e2e5c9b","source_size_bytes":148671,"source_table":"Universal Credit deductions statistics March 2025 to February 2026, Table 1","url":"https://assets.publishing.service.gov.uk/media/69fb3ea22a6137e93226b7ce/universal-credit-deductions-march-2025-to-february-2026.ods","vintage":"uc_deductions_2026_05_12"},"source_release_key":"ledger.source_release.v2:fbd0f132a18af51870b6097e","source_series_key":"ledger.source_series.v2:f6a6850862a484d6deda79cf","universe_constraint_set_key":"ledger.universe_constraint_set.v2:5de55a05f928b463a7699aa4","universe_constraints":{"domain":"universal_credit"},"value":7170000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:867e898d362e2ee81b1cc0e9","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:09dda486cf7db778ead24cee","evidence_notes":"Stat-Xplore 'Households on Universal Credit' dataset, April to December 2025, Great Britain, dimensioned by Family Type x Child Entitlement (Yes/No child element in the award); query echoed in the archived API response. DWP defines a Universal Credit household as the UC unit of assessment; Chronicle normalizes that entity to benefit_unit.","evidence_url":"https://stat-xplore.dwp.gov.uk/","relation":"source_label","source_concept":"dwp.uc_households"},"dimension_set_key":"ledger.dimension_set.v2:ae9c0d568952f7be7b3de1f9","dimensions":{"child_entitlement":"No","family_type":"Single, no children"},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-12 month count dwp uc benefit units for benefit unit (child entitlement=No, family type=Single, no children) [dwp Households on Universal Credit by family type and child entitlement, April to December 2025 uc_households_by_family_type_and_child_entitlement_april_december_2025.json stat_xplore_2026_09_03]","layout":{"groupby_dimension":"dwp.uc_family_type","groupby_ordinal":0,"groupby_value_id":"single_no_children__child_entitlement_no","groupby_value_label":"Single, no children, No","measure_id":"benefit_units","measure_label":"Universal Credit benefit units","measure_ordinal":0,"record_set_id":"dwp.statx.uc_benefit_units.family_type_child_entitlement.month2025_12","record_set_spec_hash":"dab983bf1f93719dc9bae15f","record_set_spec_id":"dwp.statx.uc_benefit_units.family_type_child_entitlement.month2025_12.v1","source_column_id":"value","source_row_id":"single_no_children__child_entitlement_no","table_record_kind":"detail"},"legacy_fact_key":"ledger.fact.v1:fab9f35da80a56fdda84f8e6","lineage":{"source_cell_keys":["ledger.source_cell.v1:10a71527160c9d4a18317afe","ledger.source_cell.v1:0c41fe6b0bac0d72d333912b","ledger.source_cell.v1:824115f66eda83ea3c5ab675","ledger.source_cell.v1:00831bec4108708177b8fcc7"],"source_record_id":"dwp.statx.uc_benefit_units.family_type_child_entitlement.month2025_12.single_no_children__child_entitlement_no.benefit_units","source_row_keys":["ledger.source_row.v1:92309fe1032298725d412418"]},"observed_measure":{"source_concept":"dwp.uc_households","source_measure_id":"benefit_units","source_name":"dwp","source_table":"Households on Universal Credit by family type and child entitlement, April to December 2025","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:6558eead1d59f9127b44b69c","period":{"type":"month","value":"2025-12"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:a770bf82683e66343b177403","source":{"extracted_at":"2026-09-03","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/uk/dwp/dwp-uc-households-family-type-child-entitlement-april-december-2025/2025/e317eff1512d2d36e4064d5976be26ea950e3478e1c08122fd9ab35341fb5d57/uc_households_by_family_type_and_child_entitlement_april_december_2025.json","raw_r2_uri":"r2://ledger-raw/raw/uk/dwp/dwp-uc-households-family-type-child-entitlement-april-december-2025/2025/e317eff1512d2d36e4064d5976be26ea950e3478e1c08122fd9ab35341fb5d57/uc_households_by_family_type_and_child_entitlement_april_december_2025.json","source_file":"uc_households_by_family_type_and_child_entitlement_april_december_2025.json","source_name":"dwp","source_sha256":"e317eff1512d2d36e4064d5976be26ea950e3478e1c08122fd9ab35341fb5d57","source_size_bytes":7982,"source_table":"Households on Universal Credit by family type and child entitlement, April to December 2025","url":"https://stat-xplore.dwp.gov.uk/webapi/rest/v1/table","vintage":"stat_xplore_2026_09_03"},"source_release_key":"ledger.source_release.v2:53a9199f091f47dccea365ad","source_series_key":"ledger.source_series.v2:3dc492a8c67367b1a504f325","universe_constraint_set_key":"ledger.universe_constraint_set.v2:8d094e2ba14699028215a5f8","universe_constraints":{"constraints":[{"operator":"==","role":"filter","value":"No","variable":"child_entitlement"},{"operator":"==","role":"filter","value":"Single, no children","variable":"family_type"}],"domain":"universal_credit"},"value":3725304,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:85f76449349c19bb159a6c91","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:09dda486cf7db778ead24cee","evidence_notes":"Stat-Xplore 'Households on Universal Credit' dataset, April to December 2025, Great Britain, dimensioned by Family Type x Child Entitlement (Yes/No child element in the award); query echoed in the archived API response. DWP defines a Universal Credit household as the UC unit of assessment; Chronicle normalizes that entity to benefit_unit.","evidence_url":"https://stat-xplore.dwp.gov.uk/","relation":"source_label","source_concept":"dwp.uc_households"},"dimension_set_key":"ledger.dimension_set.v2:495eb430d4b772790312eba1","dimensions":{"child_entitlement":"Yes","family_type":"Single, no children"},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-12 month count dwp uc benefit units for benefit unit (child entitlement=Yes, family type=Single, no children) [dwp Households on Universal Credit by family type and child entitlement, April to December 2025 uc_households_by_family_type_and_child_entitlement_april_december_2025.json stat_xplore_2026_09_03]","layout":{"groupby_dimension":"dwp.uc_family_type","groupby_ordinal":1,"groupby_value_id":"single_no_children__child_entitlement_yes","groupby_value_label":"Single, no children, Yes","measure_id":"benefit_units","measure_label":"Universal Credit benefit units","measure_ordinal":0,"record_set_id":"dwp.statx.uc_benefit_units.family_type_child_entitlement.month2025_12","record_set_spec_hash":"dab983bf1f93719dc9bae15f","record_set_spec_id":"dwp.statx.uc_benefit_units.family_type_child_entitlement.month2025_12.v1","source_column_id":"value","source_row_id":"single_no_children__child_entitlement_yes","table_record_kind":"detail"},"legacy_fact_key":"ledger.fact.v1:bc0d92df043c9f40a9effc06","lineage":{"source_cell_keys":["ledger.source_cell.v1:27b4e92b5513ed83d579d3ac","ledger.source_cell.v1:0c41fe6b0bac0d72d333912b","ledger.source_cell.v1:c3571d34e1e2c350b14a2207","ledger.source_cell.v1:c7f95e839229727bd51ec527"],"source_record_id":"dwp.statx.uc_benefit_units.family_type_child_entitlement.month2025_12.single_no_children__child_entitlement_yes.benefit_units","source_row_keys":["ledger.source_row.v1:082c4210d73f3e7e341900b6"]},"observed_measure":{"source_concept":"dwp.uc_households","source_measure_id":"benefit_units","source_name":"dwp","source_table":"Households on Universal Credit by family type and child entitlement, April to December 2025","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:6558eead1d59f9127b44b69c","period":{"type":"month","value":"2025-12"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:01d64fbeac1b570c39341979","source":{"extracted_at":"2026-09-03","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/uk/dwp/dwp-uc-households-family-type-child-entitlement-april-december-2025/2025/e317eff1512d2d36e4064d5976be26ea950e3478e1c08122fd9ab35341fb5d57/uc_households_by_family_type_and_child_entitlement_april_december_2025.json","raw_r2_uri":"r2://ledger-raw/raw/uk/dwp/dwp-uc-households-family-type-child-entitlement-april-december-2025/2025/e317eff1512d2d36e4064d5976be26ea950e3478e1c08122fd9ab35341fb5d57/uc_households_by_family_type_and_child_entitlement_april_december_2025.json","source_file":"uc_households_by_family_type_and_child_entitlement_april_december_2025.json","source_name":"dwp","source_sha256":"e317eff1512d2d36e4064d5976be26ea950e3478e1c08122fd9ab35341fb5d57","source_size_bytes":7982,"source_table":"Households on Universal Credit by family type and child entitlement, April to December 2025","url":"https://stat-xplore.dwp.gov.uk/webapi/rest/v1/table","vintage":"stat_xplore_2026_09_03"},"source_release_key":"ledger.source_release.v2:53a9199f091f47dccea365ad","source_series_key":"ledger.source_series.v2:3dc492a8c67367b1a504f325","universe_constraint_set_key":"ledger.universe_constraint_set.v2:2b63c9d7c2f0f41b9658107d","universe_constraints":{"constraints":[{"operator":"==","role":"filter","value":"Single, no children","variable":"family_type"},{"operator":"==","role":"filter","value":"Yes","variable":"child_entitlement"}],"domain":"universal_credit"},"value":0,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:5aa061e9646fbdc02bd4a085","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"hmrc","canonical_concept":"hmrc.cgt_gains_total","concept_alignment_key":"ledger.concept_alignment.v2:34d7a5f81f71c492efa47670","evidence_notes":"HMRC CGT statistics 2026, Table 5.2, 2023-24; counts are thousands and amounts are GBP millions. Totals may not sum due to rounding.","evidence_url":"https://www.gov.uk/government/statistics/capital-gains-tax-statistics","relation":"source_label","source_concept":"hmrc.cgt_gains_total"},"dimension_set_key":"ledger.dimension_set.v2:44136fa355b3678a1146ad16","dimensions":{},"entity":{"name":"tax_unit","role":"taxpayer"},"geography":{"id":"K02000001","level":"country","vintage":"current"},"label":"United Kingdom 2023 tax year sum hmrc cgt gains total for tax unit [hmrc Capital Gains Tax statistics Table 5: taxpayers, gains and liabilities by UK country and region Table_5_2026_Regional_and_country_statistics.ods cgt_statistics_2026]","layout":{"groupby_dimension":"geography","groupby_ordinal":13,"groupby_value_id":"united_kingdom","groupby_value_label":"All","measure_id":"gains_total","measure_label":"Chargeable gains","measure_ordinal":1,"record_set_id":"hmrc.cgt_table5_2026.country_region.ty2023","record_set_spec_hash":"8833b02c01989c693a472337","record_set_spec_id":"hmrc.cgt_table5_2026.country_region.ty2023.v1","source_column_id":"gains_total","source_row_id":"united_kingdom","table_record_kind":"total"},"legacy_fact_key":"ledger.fact.v1:8407be8451e6db778f937a9c","lineage":{"source_cell_keys":["ledger.source_cell.v1:548faaf161cadaa95bace267","ledger.source_cell.v1:8c159702fdca46b498e490e0"],"source_record_id":"hmrc.cgt_table5_2026.country_region.ty2023.united_kingdom.gains_total","source_row_keys":[]},"observed_measure":{"source_concept":"hmrc.cgt_gains_total","source_measure_id":"gains_total","source_name":"hmrc","source_table":"Capital Gains Tax statistics Table 5: taxpayers, gains and liabilities by UK country and region","unit":"gbp"},"observed_measure_key":"ledger.observed_measure.v2:43fb4aa41756b5bb790f9aea","period":{"type":"tax_year","value":2023},"period_coverage":{"basis":"tax","end_date":"2024-04-05","notes":"HMRC marks the 2023-24 statistics as provisional.","source_period_label":"2023 to 2024 tax year","start_date":"2023-04-06"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:6ad7e1343da03e00fadd6fcd","source":{"extracted_at":"2026-09-03","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/uk/hmrc/hmrc-cgt-country-region-2026/2026/dd3efb61a06bd794e605fc3b4a18401bb51828ba8f6dcb44e67c8fc3f6037509/Table_5_2026_Regional_and_country_statistics.ods","raw_r2_uri":"r2://ledger-raw/raw/uk/hmrc/hmrc-cgt-country-region-2026/2026/dd3efb61a06bd794e605fc3b4a18401bb51828ba8f6dcb44e67c8fc3f6037509/Table_5_2026_Regional_and_country_statistics.ods","source_file":"Table_5_2026_Regional_and_country_statistics.ods","source_name":"hmrc","source_sha256":"dd3efb61a06bd794e605fc3b4a18401bb51828ba8f6dcb44e67c8fc3f6037509","source_size_bytes":6754,"source_table":"Capital Gains Tax statistics Table 5: taxpayers, gains and liabilities by UK country and region","url":"https://assets.publishing.service.gov.uk/media/6a7b2444114277b327805c10/Table_5_2026_Regional_and_country_statistics.ods","vintage":"cgt_statistics_2026"},"source_release_key":"ledger.source_release.v2:d10fd3dc0ffe6f47c4a6b18f","source_series_key":"ledger.source_series.v2:9da935e197cb0f11c42670b5","universe_constraint_set_key":"ledger.universe_constraint_set.v2:31e69e018123fa4b604582eb","universe_constraints":{"domain":"capital_gains_tax"},"value":69861000000,"value_type":"integer"} +{"aggregate_fact_key":"ledger.aggregate_fact.v2:8f37a13228973c48fc995636","aggregation":{"method":"sum"},"assertion":"observation","concept_alignment":{"authority":"dwp","canonical_concept":"dwp.uc_benefit_units","concept_alignment_key":"ledger.concept_alignment.v2:860b334af7b847863e2a3cca","evidence_notes":"DWP defines a Universal Credit household as the UC unit of assessment; Chronicle normalizes that entity to benefit_unit.","evidence_url":"https://stat-xplore.dwp.gov.uk/","relation":"source_label","source_concept":"dwp.uc_households"},"dimension_set_key":"ledger.dimension_set.v2:5545826c91c747d11abed49d","dimensions":{"family_type":"Single, no children"},"entity":{"name":"benefit_unit","role":"universal_credit_unit_of_assessment"},"geography":{"id":"K03000001","level":"country","vintage":"current"},"label":"Great Britain 2025-12 month count dwp uc benefit units for benefit unit (family type=Single, no children) [dwp Households on Universal Credit by family type, April to December 2025 uc_households_by_family_type_april_december_2025.json stat_xplore_2026_08_21]","layout":{"groupby_dimension":"dwp.uc_family_type","groupby_ordinal":0,"groupby_value_id":"single_no_children","groupby_value_label":"Single, no children","measure_id":"benefit_units","measure_label":"Universal Credit benefit units","measure_ordinal":0,"record_set_id":"dwp.statx.uc_benefit_units.family_type.month2025_12","record_set_spec_hash":"357b86a76459eaa25b8e4970","record_set_spec_id":"dwp.statx.uc_benefit_units.family_type.month2025_12.v1","source_column_id":"value","source_row_id":"single_no_children","table_record_kind":"detail"},"legacy_fact_key":"ledger.fact.v1:a55361780162a5f037bb4269","lineage":{"source_cell_keys":["ledger.source_cell.v1:81dac94b4efac9d470df5212","ledger.source_cell.v1:75fe7cb0782ae4a1d4b2b998","ledger.source_cell.v1:a93f2173e0f33aec12a6f616"],"source_record_id":"dwp.statx.uc_benefit_units.family_type.month2025_12.single_no_children.benefit_units","source_row_keys":["ledger.source_row.v1:19555d267fc2d26a980bb8af"]},"observed_measure":{"source_concept":"dwp.uc_households","source_measure_id":"benefit_units","source_name":"dwp","source_table":"Households on Universal Credit by family type, April to December 2025","unit":"count"},"observed_measure_key":"ledger.observed_measure.v2:0b509058163e2c841aa5b37e","period":{"type":"month","value":"2025-12"},"provenance_class":"administrative","schema_version":"ledger.consumer_fact.v1","semantic_fact_key":"ledger.semantic_fact.v2:6c2b863ec0432f9ad07848de","source":{"extracted_at":"2026-08-21","extraction_method":"CellSelectorSpec and SourceRecordSpec resolved from cells","method_notes":"Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.","raw_r2_bucket":"ledger-raw","raw_r2_key":"raw/dwp/dwp-uc-households-family-type-april-december-2025/2025/44d67348da8c34465611ac00efdfcb80a69ad0f52e788d53f82517b34594377f/uc_households_by_family_type_april_december_2025.json","raw_r2_uri":"r2://ledger-raw/raw/dwp/dwp-uc-households-family-type-april-december-2025/2025/44d67348da8c34465611ac00efdfcb80a69ad0f52e788d53f82517b34594377f/uc_households_by_family_type_april_december_2025.json","source_file":"uc_households_by_family_type_april_december_2025.json","source_name":"dwp","source_sha256":"44d67348da8c34465611ac00efdfcb80a69ad0f52e788d53f82517b34594377f","source_size_bytes":6719,"source_table":"Households on Universal Credit by family type, April to December 2025","url":"https://stat-xplore.dwp.gov.uk/webapi/rest/v1/table","vintage":"stat_xplore_2026_08_21"},"source_release_key":"ledger.source_release.v2:9f8efed9887bd5a010eaade7","source_series_key":"ledger.source_series.v2:422a6a7d47249f00aab1204c","universe_constraint_set_key":"ledger.universe_constraint_set.v2:f3eacc541532777e223cccae","universe_constraints":{"constraints":[{"operator":"==","role":"filter","value":"Single, no children","variable":"family_type"}],"domain":"universal_credit"},"value":3725304,"value_type":"integer"} diff --git a/packages/microcosm-build/tests/test_uk_battery_bindings.py b/packages/microcosm-build/tests/test_uk_battery_bindings.py index ff0313fd5..71346837b 100644 --- a/packages/microcosm-build/tests/test_uk_battery_bindings.py +++ b/packages/microcosm-build/tests/test_uk_battery_bindings.py @@ -1000,14 +1000,14 @@ def test_local_default_target_surface_uses_metric_names_and_signed_deferrals( ) assert result.passed is True - assert result.details["candidate_targets"] == 19_618 + assert result.details["candidate_targets"] == 19_932 assert result.details["reference_targets"] == 22_530 - # 1,901 signed area deferrals from the membership file plus the 1,011 + # 1,587 signed area deferrals from the membership file plus the 1,011 # ladder-derived households@area rows: census_households binds from the # OA-ladder artifact (microcosm#542), never from Chronicle facts, so the # in-code default surface excludes it by rule rather than by absence. exclusions = result.details["reviewed_exclusions"] - assert len(exclusions) == 1_901 + 1_011 + assert len(exclusions) == 1_587 + 1_011 households = [ name for name in exclusions if str(name).startswith("households@") ] diff --git a/packages/microcosm-build/tests/test_uk_calibration_seam_driver.py b/packages/microcosm-build/tests/test_uk_calibration_seam_driver.py index f8cf5b3ae..ac4d4dfa4 100644 --- a/packages/microcosm-build/tests/test_uk_calibration_seam_driver.py +++ b/packages/microcosm-build/tests/test_uk_calibration_seam_driver.py @@ -80,9 +80,7 @@ def test_driver_refuses_release_candidate_outright(tmp_path: Path): # The refusal is unconditional — an otherwise doctrine-clean invocation # is refused too, not just ones with override flags. with pytest.raises(SystemExit): - driver._parse_args( - _args(tmp_path) + ["--release-candidate", "--epochs", "128"] - ) + driver._parse_args(_args(tmp_path) + ["--release-candidate", "--epochs", "128"]) def test_driver_refuses_canonical_release_ids(tmp_path: Path): @@ -125,7 +123,24 @@ def test_driver_refuses_bad_sha_and_path_alias(tmp_path: Path): driver._parse_args(args) -def test_driver_threads_registry_exclusions_resolver_and_overrides(monkeypatch, tmp_path, capsys): +def test_driver_refuses_feed_outside_the_committed_pin_without_override(): + driver = _load_driver_module() + + with pytest.raises(SystemExit, match="committed UK feed pin"): + driver._check_committed_ledger_feed_pin( + "b" * 64, + allow_unpinned_feed=False, + ) + + driver._check_committed_ledger_feed_pin( + "b" * 64, + allow_unpinned_feed=True, + ) + + +def test_driver_threads_registry_exclusions_resolver_and_overrides( + monkeypatch, tmp_path, capsys +): driver = _load_driver_module() calls = [] registry = _registry() @@ -133,12 +148,14 @@ def test_driver_threads_registry_exclusions_resolver_and_overrides(monkeypatch, artifact = SimpleNamespace( path=tmp_path / "ledger", facts=({"fact": 1},), - facts_sha256="b" * 64, + facts_sha256=driver._LEDGER_FACT_FEED_PIN["facts_sha256"], manifest_sha256="c" * 64, ) artifact.path.mkdir() (artifact.path / "consumer_facts.jsonl").write_text("{}", encoding="utf-8") - monkeypatch.setattr(driver, "load_ledger_consumer_artifact", lambda *a, **k: artifact) + monkeypatch.setattr( + driver, "load_ledger_consumer_artifact", lambda *a, **k: artifact + ) monkeypatch.setattr( driver, "compile_uk_target_registry", @@ -149,7 +166,9 @@ def test_driver_threads_registry_exclusions_resolver_and_overrides(monkeypatch, "load_uk_frs_release", lambda: SimpleNamespace(calibration_year=2025), ) - monkeypatch.setattr(driver, "load_uk_calibration_measure_exclusions", lambda path: ()) + monkeypatch.setattr( + driver, "load_uk_calibration_measure_exclusions", lambda path: () + ) monkeypatch.setattr( driver, "apply_uk_calibration_measure_exclusions", @@ -191,8 +210,17 @@ def fake_run(**kwargs): assert call["doctrine"].epochs == 128 assert call["doctrine_overrides"] == {"epochs": {"default": 256, "effective": 128}} assert isinstance(call["measure_resolver"], FakeResolver) - assert call["measure_resolver"].kwargs["simulation_source"] == call["paths"].input_h5 - assert call["source_pins"]["ledger_facts"] == {"sha256": "b" * 64, "size_bytes": 2} + assert ( + call["measure_resolver"].kwargs["simulation_source"] == call["paths"].input_h5 + ) + assert call["source_pins"]["ledger_facts"] == { + "sha256": driver._LEDGER_FACT_FEED_PIN["facts_sha256"], + "size_bytes": 2, + } + assert call["run_config_extra"] == { + "calibration_year": 2025, + "allow_unpinned_feed": False, + } assert "uk_target_fit" in capsys.readouterr().out diff --git a/packages/microcosm-build/tests/test_uk_local_target_census.py b/packages/microcosm-build/tests/test_uk_local_target_census.py index 601d11bcf..a83b3c721 100644 --- a/packages/microcosm-build/tests/test_uk_local_target_census.py +++ b/packages/microcosm-build/tests/test_uk_local_target_census.py @@ -104,9 +104,10 @@ def test_census_source_rows_are_reviewed_pointers() -> None: if source["status"] == SOURCE_STATUS_PINNED_IN_LEDGER_FACTS: pin = source["ledger_fact_pin"] assert pin["facts_sha256"] == ( - "4395a4e76a75332cc77a7dc1ea5d3c49b36e0d268c8449474bc129aa24e38c48" + "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f" ) - assert pin["source_commit"] == "33ca98a" + assert pin["source_commit"] == "6fb700e" + assert pin["source_repo"] == "PolicyEngine/chronicle" if source["status"] == SOURCE_STATUS_SIGNED_DEFERRED: assert source["signed_reason_id"], source["source_id"] assert source["signed_rationale"], source["source_id"] diff --git a/packages/microcosm-build/tests/test_uk_national_calibration.py b/packages/microcosm-build/tests/test_uk_national_calibration.py index 58a0a8c2c..a259bd24e 100644 --- a/packages/microcosm-build/tests/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/test_uk_national_calibration.py @@ -228,6 +228,15 @@ def _fact_for_reference( ) -> dict: selector = dict(reference.ledger_selector) dimensions = dict(selector.get("dimension_values", {})) + layout = { + key: selector[key] + for key in ( + "groupby_dimension", + "groupby_value_id", + "record_set_spec_id", + ) + if key in selector + } return { "aggregate_fact_key": f"ledger.aggregate_fact.v2:{reference.name}", "aggregation": {"method": "sum"}, @@ -237,10 +246,11 @@ def _fact_for_reference( "level": selector.get("geography_level", "country"), "id": selector.get("geography_id", "K02000001"), }, + "layout": layout, "observed_measure": { "source_name": selector["source_name"], "source_concept": selector["source_concept"], - "source_measure_id": "value", + "source_measure_id": selector.get("source_measure_id", "value"), "unit": "gbp", }, "period": {"type": "month", "value": f"{reference.period}-12"}, @@ -342,7 +352,9 @@ def test_uc_calibration_stage_accepts_benunit_grain_reference_on_nested_frame() def test_stage_measure_resolver_injects_columns_then_restores_pristine_output() -> None: frame = _frame_without_uc_column() resolver = StubMeasureResolver() - original_columns = {entity: set(frame.table(entity).columns) for entity in frame.entities} + original_columns = { + entity: set(frame.table(entity).columns) for entity in frame.entities + } stage = UKNationalCalibrationStage( _registry(), band_edge_registry=_registry(), @@ -865,9 +877,7 @@ def test_measure_resolution_never_touches_the_source_frame() -> None: from microcosm.build.uk_runtime.ledger_targets import UKFrameTargetAdapter frame = _materialization_binding_frame() - before = { - entity: list(frame.table(entity).columns) for entity in frame.entities - } + before = {entity: list(frame.table(entity).columns) for entity in frame.entities} class ProbeResolver: contract_targets = { diff --git a/packages/microcosm-build/tests/test_uk_pipr_deferrals.py b/packages/microcosm-build/tests/test_uk_pipr_deferrals.py index 029e6f7d7..737891541 100644 --- a/packages/microcosm-build/tests/test_uk_pipr_deferrals.py +++ b/packages/microcosm-build/tests/test_uk_pipr_deferrals.py @@ -26,37 +26,48 @@ def _membership() -> dict: ) -def test_pipr_2025_surface_remains_fully_deferred_after_measurement() -> None: +def _references() -> list[dict]: + return json.loads( + importlib_resources.files("microcosm.build.uk") + .joinpath("local_target_references.json") + .read_text() + )["target_references"] + + +def test_pipr_2025_surface_activates_available_calendar_year_averages() -> None: target = _membership()["targets"]["ons.rent.private_rent"] candidates = target["geography_levels"]["local_authority"]["candidates"] assert len(candidates) == 361 - assert sum(row["status"] == "active" for row in candidates) == 0 + assert sum(row["status"] == "active" for row in candidates) == 314 assert ( - sum(row["status"] == "no_fact_at_or_before_period" for row in candidates) == 314 + sum(row["status"] == "no_fact_at_or_before_period" for row in candidates) == 0 ) assert sum(row["status"] == "no_fact_for_area" for row in candidates) == 47 + references = [ + row + for row in _references() + if row["metadata"]["contract_target_id"] == "ons.rent.private_rent" + ] + assert len(references) == 314 + assert {row["value_operation"] for row in references} == {"calendar_year_average"} + assert {row["metadata"]["fact_aggregation"] for row in references} == {"time_mean"} + assert all( + "Calendar-year average" in row["metadata"]["period_basis_note"] + for row in references + ) -def test_pipr_four_signed_reasons_pin_feed_and_crosswalk_measurements() -> None: +def test_pipr_three_signed_absence_reasons_pin_crosswalk_measurements() -> None: rows = { row["reason_id"]: row for row in _membership()["signed_deferrals"] if row["reason_id"].startswith("private_rent_pipr_") } assert set(rows) == { - "private_rent_pipr_after_target_period", "private_rent_pipr_english_lad_absent", "private_rent_pipr_scotland_brma_grain", "private_rent_pipr_ni_absent", } - assert len(rows["private_rent_pipr_after_target_period"]["area_ids"]) == 314 - assert ( - "348 facts total" in rows["private_rent_pipr_after_target_period"]["rationale"] - ) - assert ( - "E08000038 and E08000039" - in rows["private_rent_pipr_after_target_period"]["rationale"] - ) assert rows["private_rent_pipr_english_lad_absent"]["area_ids"] == [ "E06000053", "E08000016", diff --git a/packages/microcosm-build/tests/test_uk_population_targets.py b/packages/microcosm-build/tests/test_uk_population_targets.py index 51ce30079..d780b8c2d 100644 --- a/packages/microcosm-build/tests/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/test_uk_population_targets.py @@ -522,7 +522,11 @@ def test_uk_population_uc_households_target_counts_benunits() -> None: assert target["ledger_selector"] == { "source_name": "dwp", "source_concept": "dwp.uc_benefit_units", + "source_measure_id": "total_units", + "groupby_dimension": "dwp.uc_deductions_month", } + assert "6,758,889" in target["bindings"]["policyengine"]["notes"] + assert "1.45%" in target["bindings"]["policyengine"]["notes"] def test_uk_uc_composition_and_disability_children_targets_are_rebound() -> None: diff --git a/packages/microcosm-build/tests/test_uk_target_references.py b/packages/microcosm-build/tests/test_uk_target_references.py index d9ee9d216..9c650e3e6 100644 --- a/packages/microcosm-build/tests/test_uk_target_references.py +++ b/packages/microcosm-build/tests/test_uk_target_references.py @@ -7,7 +7,11 @@ from __future__ import annotations +import hashlib import json +import os +import subprocess +import sys from importlib import resources as importlib_resources from pathlib import Path @@ -16,6 +20,7 @@ import pytest from microcosm.build.country_spec import load_country_spec +from microcosm.build.ledger_artifact import load_ledger_consumer_artifact from microcosm.build.ledger_targets import ( LedgerTargetReference, compile_ledger_target_references, @@ -24,12 +29,14 @@ TargetReferenceAuthoringConfig, author_target_references, ) +from microcosm.build.uk_runtime.local_target_census import _LEDGER_FACT_FEED_PIN from microcosm.calibrate.matrix import build_constraint_matrix from microcosm.frame import EntitySchema, Frame, WeightKind, Weights from tools.generate_uk_target_references import ( POLICYENGINE_BINDING_KEYS, _annual_uc_award_band_token, _geography_pins, + _sum_target_ids, _value_operation_by_target_id, ) @@ -45,12 +52,16 @@ "obr.esa", "hmrc.cgt.gains_total", "hmrc.cgt.taxpayers_total", + "dwp.uc.households", + "dwp.uc.households_single_no_children", } FIXTURE_FEED_ROWS = ( Path(__file__).parent / "fixtures" / "uk_target_reference_feed_rows.jsonl" ) +STABLE_UK_FACT_FEED_NAME = ".codex-work/consumer_facts_uk.jsonl" + def _load_uk_resource(name: str) -> dict: return json.loads( @@ -58,6 +69,100 @@ def _load_uk_resource(name: str) -> dict: ) +def _sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def test_committed_surfaces_regenerate_from_pinned_feed(tmp_path: Path) -> None: + root = Path(__file__).resolve().parents[3] + configured = os.environ.get("CHRONICLE_UK_FACTS") + feed = Path(configured) if configured else root / STABLE_UK_FACT_FEED_NAME + if not feed.exists(): + pytest.skip("pinned UK Chronicle consumer feed is not present") + + if feed.is_dir(): + artifact_path = feed + else: + default_manifest = root / ".codex-work/consumer_facts_uk_manifest.json" + manifest = ( + default_manifest if not configured else feed.with_name("manifest.json") + ) + if not manifest.is_file(): + pytest.skip("pinned UK Chronicle consumer manifest is not present") + artifact_path = tmp_path / "consumer-artifact" + artifact_path.mkdir() + (artifact_path / "consumer_facts.jsonl").symlink_to(feed.resolve()) + (artifact_path / "manifest.json").symlink_to(manifest.resolve()) + + artifact = load_ledger_consumer_artifact( + artifact_path, + expected_facts_sha256=_LEDGER_FACT_FEED_PIN["facts_sha256"], + expected_manifest_sha256=_LEDGER_FACT_FEED_PIN["manifest_sha256"], + ) + assert artifact.fact_row_count == 128_717 + facts_path = ( + artifact.path / "consumer_facts.jsonl" + if artifact.path.is_dir() + else artifact.path + ) + + package = root / "packages/microcosm-build/src/microcosm/build/uk" + generated = tmp_path / "generated" + generated.mkdir() + national = generated / "target_references.json" + national_membership = generated / "target_reference_membership.json" + local = generated / "local_target_references.json" + local_membership = generated / "local_target_reference_membership.json" + common = [sys.executable] + subprocess.run( + [ + *common, + str(root / "tools/generate_uk_target_references.py"), + "--contract", + str(package / "uk_population_targets.json"), + "--ledger-facts", + str(facts_path), + "--source-fact-feed", + STABLE_UK_FACT_FEED_NAME, + "--output", + str(national), + "--membership-report", + str(national_membership), + ], + cwd=root, + check=True, + ) + subprocess.run( + [ + *common, + str(root / "tools/generate_uk_local_target_references.py"), + "--contract", + str(package / "uk_population_targets.json"), + "--ledger-facts", + str(facts_path), + "--source-fact-feed", + STABLE_UK_FACT_FEED_NAME, + "--crosswalk", + str(package / "local_area_crosswalk.json"), + "--output", + str(local), + "--membership-report", + str(local_membership), + ], + cwd=root, + check=True, + ) + + for regenerated, committed_name in ( + (national, "target_references.json"), + (national_membership, "target_reference_membership.json"), + (local, "local_target_references.json"), + (local_membership, "local_target_reference_membership.json"), + ): + committed = package / committed_name + assert _sha256(regenerated) == _sha256(committed), committed_name + + def _contract_targets_by_id() -> dict[str, dict]: contract = _load_uk_resource("uk_population_targets.json") return {target["target_id"]: target for target in contract["targets"]} @@ -75,6 +180,11 @@ def _uc_benefit_units_fact(period: str, *, value: float) -> dict: "aggregation": {"method": "sum"}, "assertion": "observation", "geography": {"level": "country", "id": "K03000001"}, + "layout": { + "groupby_dimension": "dwp.uc_deductions_month", + "measure_id": "total_units", + "record_set_id": f"dwp.uc_deductions.{period}.total_units", + }, "observed_measure": { "source_name": "dwp", "source_concept": "dwp.uc_benefit_units", @@ -104,6 +214,7 @@ def test_uk_target_references_follow_contract_derivation_rules() -> None: "sum", "calendar_year_average", "latest_plateau", + "count_x_mean", ] assert len(names) == len(set(names)) @@ -176,12 +287,44 @@ def test_ons_age_total_targets_pin_exact_age_dimension_set() -> None: ] } - assert references["ons.population.scotland_babies_under_1"][ - "ledger_selector" - ]["dimensions"] == ["age"] - assert references["ons.population.scotland_children_under_16"][ - "ledger_selector" - ]["dimensions"] == ["age"] + assert references["ons.population.scotland_babies_under_1"]["ledger_selector"][ + "dimensions" + ] == ["age"] + assert references["ons.population.scotland_children_under_16"]["ledger_selector"][ + "dimensions" + ] == ["age"] + + +def test_uc_composition_targets_pin_exact_dimension_sets_without_triggering_sum() -> ( + None +): + contract = _load_uk_resource("uk_population_targets.json") + targets = {target["target_id"]: target for target in contract["targets"]} + sum_target_ids = _sum_target_ids(contract) + + composition = { + target_id: target + for target_id, target in targets.items() + if target["family"] == "dwp_universal_credit" + and "dimension_values" in target["ledger_selector"] + } + assert composition + for target_id, target in composition.items(): + selector = target["ledger_selector"] + assert set(selector["dimension_values"]) <= set(selector["dimensions"]) + assert target_id not in sum_target_ids + + for target_id, target in composition.items(): + selector = target["ledger_selector"] + if target_id.startswith("dwp.uc.households_children_"): + assert selector["dimensions"] == ["number_of_children"] + elif target_id.startswith( + ( + "dwp.uc.households_single_", + "dwp.uc.households_couple_", + ) + ): + assert selector["dimensions"] == ["family_type"] def test_prefix_geography_pins_carry_scotgov_and_england_scoped_slc_families() -> None: @@ -281,9 +424,8 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { "active": 408, - "multi_fact": 1, "no_fact_at_or_before_period": 7, - "signed_excluded": 1, + "signed_excluded": 2, } assert membership["genuine_sum_residue"] assert membership["uprating_holds"] @@ -348,24 +490,20 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: "facts would knowingly calibrate to 10/19 of the incumbent " "surface." ), - } - ] - assert membership["multi_fact_rationales"] == [ + }, { "family": "ons_population", "target_id": "ons.population.scotland_households_3plus_children", - "candidate_name": "ons/scotland_households_3plus_children", - "status": "adjudication_pending", + "status": "signed_excluded", "signed_rationale": ( - "Remaining multi_fact is genuine: the selector reaches ONS " - "mid-year population age rows for Scotland across six eligible " - "periods, while the contract target is a household count with " - "three or more children. No Ledger household-composition fact " - "at or before 2025 is selected by the current contract, so " - "Microcosm must not adjudicate a replacement source here." + "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." ), - } + }, ] + assert membership["multi_fact_rationales"] == [] def test_uk_fixture_b_signed_differences_carry_ruled_rationales() -> None: @@ -378,18 +516,15 @@ def test_uk_fixture_b_signed_differences_carry_ruled_rationales() -> None: assert "2023-24 outturn" in differences["hmrc.cgt.gains_total"]["reason"] assert "forecast/uprated value" in differences["hmrc.cgt.gains_total"]["reason"] - assert "single-age-90 share" in differences[ - "ons.population.female_85_89" - ]["reason"] - assert "single-age-90 share" in differences[ - "ons.population.male_85_89" - ]["reason"] - assert "ages 91+ unconstrained" in differences[ - "ons.population.female_90_plus" - ]["reason"] - assert "ages 91+ unconstrained" in differences[ - "ons.population.male_90_plus" - ]["reason"] + assert "single-age-90 share" in differences["ons.population.female_85_89"]["reason"] + assert "single-age-90 share" in differences["ons.population.male_85_89"]["reason"] + assert ( + "ages 91+ unconstrained" + in differences["ons.population.female_90_plus"]["reason"] + ) + assert ( + "ages 91+ unconstrained" in differences["ons.population.male_90_plus"]["reason"] + ) def test_uk_target_references_compile_from_real_staged_feed_rows() -> None: @@ -443,9 +578,29 @@ def test_uk_target_references_compile_from_real_staged_feed_rows() -> None: assert targets["hmrc.cgt.taxpayers_total"].value == 378_000 assert targets["hmrc.cgt.gains_total"].metadata["ledger_fact_period"] == "2023" + caseload = targets["dwp.uc.households"] + assert caseload.value == pytest.approx(6_758_888.888888889) + assert caseload.metadata["ledger_member_fact_count"] == "9" + assert caseload.metadata["ledger_value_operation"] == "calendar_year_average" -def test_uk_generator_assigns_calendar_average_to_uc_benefit_unit_targets() -> None: + family_type = targets["dwp.uc.households_single_no_children"] + assert family_type.value == 3_725_304 + assert "ledger_member_fact_count" not in family_type.metadata + assert family_type.metadata["ledger_value_operation"] == "calendar_year_average" + + +def test_uk_generator_assigns_calendar_average_to_the_whole_uc_family() -> None: contract = _load_uk_resource("uk_population_targets.json") + operations = _value_operation_by_target_id(contract) + uc_target_ids = { + target["target_id"] + for target in contract["targets"] + if target["family"] == "dwp_universal_credit" + } + assert uc_target_ids + assert all( + operations[target_id] == "calendar_year_average" for target_id in uc_target_ids + ) facts = [ _uc_benefit_units_fact("2025-04", value=6_380_000.0), *( @@ -516,11 +671,16 @@ def test_uk_target_references_constrain_a_frame_with_prepared_columns() -> None: n_households = 3 weights = np.array([10.0, 20.0, 30.0]) household_columns: dict[str, np.ndarray] = {} + benunit_columns: dict[str, np.ndarray] = {} person_columns: dict[str, np.ndarray] = {} expected_aggregates: dict[str, float] = {} for index, compiled in enumerate(registry.specs): column = np.array([index + 1.0, 2.0 * (index + 1.0), 0.0]) - columns = person_columns if compiled.entity == "person" else household_columns + columns = { + "person": person_columns, + "benunit": benunit_columns, + "household": household_columns, + }[compiled.entity] columns[compiled.measure] = column expected_aggregates[f"{compiled.name}@{compiled.period}"] = float( (column * weights).sum() @@ -533,14 +693,16 @@ def test_uk_target_references_constrain_a_frame_with_prepared_columns() -> None: { "person_id": household_ids, "person_household_id": household_ids, + "person_benunit_id": household_ids, **person_columns, } ), + "benunit": pd.DataFrame({"benunit_id": household_ids, **benunit_columns}), "household": pd.DataFrame( {"household_id": household_ids, **household_columns} ), }, - EntitySchema(group_entities=("household",)), + EntitySchema(group_entities=("household", "benunit")), {"household": Weights(values=weights, kind=WeightKind.DESIGN)}, ) diff --git a/tools/calibrate_uk_national_dataset.py b/tools/calibrate_uk_national_dataset.py index c6e2118a5..c05b2fb04 100644 --- a/tools/calibrate_uk_national_dataset.py +++ b/tools/calibrate_uk_national_dataset.py @@ -27,6 +27,7 @@ ) from microcosm.build.uk_runtime.frs_release import load_uk_frs_release from microcosm.build.uk_runtime.ledger_targets import compile_uk_target_registry +from microcosm.build.uk_runtime.local_target_census import _LEDGER_FACT_FEED_PIN from microcosm.build.uk_runtime.measure_simulation import ( UKMeasureResolver, apply_uk_calibration_measure_exclusions, @@ -37,7 +38,9 @@ from microcosm.calibrate import TargetRegistry _SHA256 = re.compile(r"[0-9a-f]{64}") -_CANONICAL_UK_RELEASE_ID = re.compile(r"populace-uk-[1-9][0-9]*-[a-z0-9_]+-k[1-9][0-9]*") +_CANONICAL_UK_RELEASE_ID = re.compile( + r"populace-uk-[1-9][0-9]*-[a-z0-9_]+-k[1-9][0-9]*" +) _UK_JUNE_RELEASE_ID = "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z" @@ -48,6 +51,10 @@ def main(argv: list[str] | None = None) -> int: expected_facts_sha256=args.ledger_facts_sha256, expected_manifest_sha256=args.ledger_manifest_sha256, ) + _check_committed_ledger_feed_pin( + artifact.facts_sha256, + allow_unpinned_feed=args.allow_unpinned_feed, + ) calibration_year = load_uk_frs_release().calibration_year compilation = compile_uk_target_registry( artifact.facts, target_period=calibration_year @@ -111,7 +118,10 @@ def main(argv: list[str] | None = None) -> int: }, "ledger_facts": _ledger_facts_pin(artifact), }, - run_config_extra={"calibration_year": calibration_year}, + run_config_extra={ + "calibration_year": calibration_year, + "allow_unpinned_feed": args.allow_unpinned_feed, + }, release_id=args.release_id, logbook_prev_row_digest=args.logbook_prev_row_digest, ) @@ -133,6 +143,14 @@ def _parse_args(argv: list[str] | None) -> argparse.Namespace: parser.add_argument("--ledger-facts", required=True, type=Path) parser.add_argument("--ledger-facts-sha256", required=True, type=_sha256) parser.add_argument("--ledger-manifest-sha256", required=True, type=_sha256) + parser.add_argument( + "--allow-unpinned-feed", + action="store_true", + help=( + "Allow a Chronicle fact feed whose content hash differs from the " + "committed UK feed pin; the override is recorded in the run manifest." + ), + ) parser.add_argument("--staging-h5", required=True, type=Path) parser.add_argument("--diagnostics-json", required=True, type=Path) parser.add_argument("--build-record-json", required=True, type=Path) @@ -205,6 +223,20 @@ def _sha256_file(path: Path) -> str: return digest.hexdigest() +def _check_committed_ledger_feed_pin( + facts_sha256: str, + *, + allow_unpinned_feed: bool, +) -> None: + committed = _LEDGER_FACT_FEED_PIN["facts_sha256"] + if facts_sha256 != committed and not allow_unpinned_feed: + raise SystemExit( + "error: Chronicle consumer facts differ from the committed UK feed pin: " + f"loaded {facts_sha256}, committed {committed}; pass " + "--allow-unpinned-feed only for an explicitly reviewed diagnostic run" + ) + + def _validate_distinct_paths(paths: dict[str, Path]) -> None: resolved = {label: path.expanduser().resolve() for label, path in paths.items()} for (left_label, left), (right_label, right) in combinations(resolved.items(), 2): @@ -223,7 +255,10 @@ def _paths_alias(left: Path, right: Path) -> bool: right_stat = right.stat() except FileNotFoundError: return False - return (left_stat.st_dev, left_stat.st_ino) == (right_stat.st_dev, right_stat.st_ino) + return (left_stat.st_dev, left_stat.st_ino) == ( + right_stat.st_dev, + right_stat.st_ino, + ) def _compare_frozen_register(path: Path | None, registry: Any) -> None: @@ -252,7 +287,9 @@ def _compare_frozen_register(path: Path | None, registry: Any) -> None: def _ledger_facts_pin(artifact: Any) -> dict[str, object]: facts_path = ( - artifact.path / "consumer_facts.jsonl" if artifact.path.is_dir() else artifact.path + artifact.path / "consumer_facts.jsonl" + if artifact.path.is_dir() + else artifact.path ) return {"sha256": artifact.facts_sha256, "size_bytes": facts_path.stat().st_size} diff --git a/tools/generate_uk_local_target_references.py b/tools/generate_uk_local_target_references.py index 8065f4e8c..9fe172300 100644 --- a/tools/generate_uk_local_target_references.py +++ b/tools/generate_uk_local_target_references.py @@ -52,8 +52,17 @@ def main() -> None: areas_by_geography_level=_areas_by_geography_level(crosswalk), area_signed_deferrals=tuple(_area_signed_deferrals(contract, crosswalk)), value_operation_by_target_id=_value_operation_by_target_id(contract), + reference_metadata_by_target_id={ + "ons.rent.private_rent": { + "fact_aggregation": "time_mean", + "period_basis_note": ( + "Calendar-year average of the available 2025 PIPR monthly " + "area price levels; approved by María on 2026-09-05." + ), + } + }, binding_vocabulary=POLICYENGINE_BINDING_KEYS, - source_fact_feed=str(args.ledger_facts), + source_fact_feed=args.source_fact_feed or str(args.ledger_facts), ) authored = author_area_target_references( contract, @@ -84,6 +93,10 @@ def _parser() -> argparse.ArgumentParser: # The pinned consumer feed is licensed and untracked: it must be named # explicitly so a regeneration never silently binds to a stale local copy. parser.add_argument("--ledger-facts", type=Path, required=True) + parser.add_argument( + "--source-fact-feed", + help="Stable display name recorded in the generated membership report.", + ) parser.add_argument( "--crosswalk", type=Path, default=UK_PACKAGE_ROOT / "local_area_crosswalk.json" ) @@ -157,6 +170,8 @@ def _value_operation_by_target_id(contract: Mapping[str, Any]) -> dict[str, str] "ons.tenure.social_rent", }: operations[target_id] = "sum" + if target_id == "ons.rent.private_rent": + operations[target_id] = "calendar_year_average" return operations @@ -197,11 +212,6 @@ def _area_signed_deferrals( "E08000019", "E09000001", ) - pipr_after_target_period_area_ids = tuple( - area_id - for area_id in local_authority_ids - if area_id[:1] in {"E", "W"} and area_id not in pipr_lad_absent_area_ids - ) spi_la_measure_gap_area_ids = ("E06000027", "E06000053") deferrals: list[AreaSignedDeferral] = [] @@ -349,32 +359,25 @@ def add( ), area_ids=council_tax_wales_band_h_area_ids, ) - add( - target_id="ons.rent.private_rent", - geography_level="local_authority", - reason_id="private_rent_pipr_after_target_period", - rationale="The pinned feed contains one PIPR period, 2026-06: 348 facts total, including 316 LA ids. Of those, 314 overlap the 2025 crosswalk (292 England and all 22 Wales); E08000038 and E08000039 are outside it. No PIPR fact is at or before the 2025 target period, so all 314 matching cells remain deferred.", - area_ids=pipr_after_target_period_area_ids, - ) add( target_id="ons.rent.private_rent", geography_level="local_authority", reason_id="private_rent_pipr_english_lad_absent", - rationale="The pinned feed's sole PIPR period (2026-06) carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001.", + rationale="The pinned PIPR monthly series carries 294 English LA ids, of which 292 overlap the crosswalk and two (E08000038, E08000039) do not. It omits four English crosswalk authorities: E06000053, E08000016, E08000019, and E09000001.", area_ids=pipr_lad_absent_area_ids, ) add( target_id="ons.rent.private_rent", geography_level="local_authority", reason_id="private_rent_pipr_scotland_brma_grain", - rationale="The pinned feed's sole PIPR period (2026-06) carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred.", + rationale="The pinned PIPR monthly series carries 18 Scottish BRMA rows at statistical_scope grain and no Scottish LA rows for the 32-authority crosswalk. CrossGrainBridge declares target identity but cannot translate overlapping BRMA geographies to LAs, and no signed BRMA-to-LA crosswalk is present, so allocation is forbidden and all 32 cells remain deferred.", area_ids=scottish_local_authorities, ) add( target_id="ons.rent.private_rent", geography_level="local_authority", reason_id="private_rent_pipr_ni_absent", - rationale="The pinned feed's 348 PIPR facts at 2026-06 contain zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent.", + rationale="The pinned PIPR monthly series contains zero Northern Ireland rows at any geography level, so all 11 Northern Ireland local-authority cells remain signed absent.", area_ids=ni_local_authorities, ) return deferrals diff --git a/tools/generate_uk_target_references.py b/tools/generate_uk_target_references.py index 79c3998ae..73d8da5d6 100644 --- a/tools/generate_uk_target_references.py +++ b/tools/generate_uk_target_references.py @@ -121,7 +121,7 @@ def main() -> None: selector_pins_by_target_id=_selector_pins(contract), signed_exclusions_by_target_id=_signed_exclusions(contract), binding_vocabulary=POLICYENGINE_BINDING_KEYS, - source_fact_feed=str(args.ledger_facts), + source_fact_feed=args.source_fact_feed or str(args.ledger_facts), ) authored = author_target_references(contract, facts, config) _add_uk_membership_accounting(authored.membership_report, authored.references) @@ -144,6 +144,10 @@ def _parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser() parser.add_argument("--contract", type=Path, required=True) parser.add_argument("--ledger-facts", type=Path, required=True) + parser.add_argument( + "--source-fact-feed", + help="Stable display name recorded in the generated membership report.", + ) parser.add_argument("--period", type=int, default=2025) parser.add_argument("--output", type=Path, required=True) parser.add_argument("--membership-report", type=Path, required=True) @@ -238,7 +242,10 @@ def _sum_target_ids(contract: Mapping[str, Any]) -> frozenset[str]: binding = target["bindings"]["policyengine"] if "value_expression" in binding: target_ids.add(str(target["target_id"])) - if any(isinstance(value, list) for value in selector.values()): + if any( + key != "dimensions" and isinstance(value, list) + for key, value in selector.items() + ): target_ids.add(str(target["target_id"])) dimension_values = selector.get("dimension_values") if isinstance(dimension_values, Mapping) and any( @@ -250,10 +257,13 @@ def _sum_target_ids(contract: Mapping[str, Any]) -> frozenset[str]: def _value_operation_by_target_id(contract: Mapping[str, Any]) -> dict[str, str]: operations = {target_id: "sum" for target_id in _sum_target_ids(contract)} + # ``dimensions: []`` is an exact-key-set selector pin, not a generic sum + # trigger. The UK all-ages population row is nevertheless a reviewed sum + # residue and must retain that operation explicitly. + operations["ons.population.uk_total"] = "sum" for target in contract.get("targets", ()): - selector = target["ledger_selector"] target_id = str(target["target_id"]) - if selector.get("source_concept") == "dwp.uc_benefit_units": + if target.get("family") == "dwp_universal_credit": operations[target_id] = "calendar_year_average" return operations @@ -263,9 +273,10 @@ def _selector_pins(contract: Mapping[str, Any]) -> dict[str, dict[str, Any]]: for target in contract.get("targets", ()): selector = target["ledger_selector"] dimension_values = selector.get("dimension_values") - if ( - selector.get("source_concept") == "ons.mid_year_population_estimate" - and isinstance(dimension_values, Mapping) + if selector.get( + "source_concept" + ) == "ons.mid_year_population_estimate" and isinstance( + dimension_values, Mapping ): pins[str(target["target_id"])] = { "dimensions": sorted(str(key) for key in dimension_values) @@ -274,14 +285,23 @@ def _selector_pins(contract: Mapping[str, Any]) -> dict[str, dict[str, Any]]: def _signed_exclusions(contract: Mapping[str, Any]) -> dict[str, str]: - target_ids = { - str(target["target_id"]) - for target in contract.get("targets", ()) + target_ids = {str(target["target_id"]) for target in contract.get("targets", ())} + exclusions = { + "hmrc.spi.property_income.amount_by_total_income_band": ( + PROPERTY_INCOME_SIGNED_EXCLUSION_RATIONALE + ), + "ons.population.scotland_households_3plus_children": ( + "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." + ), + } + return { + target_id: rationale + for target_id, rationale in exclusions.items() + if target_id in target_ids } - target_id = "hmrc.spi.property_income.amount_by_total_income_band" - if target_id not in target_ids: - return {} - return {target_id: PROPERTY_INCOME_SIGNED_EXCLUSION_RATIONALE} def _fanout_name( @@ -419,24 +439,17 @@ def _add_uk_membership_accounting( "signed_rationale": report["targets"][ "hmrc.spi.property_income.amount_by_total_income_band" ]["candidates"][0]["signed_rationale"], - } - ] - report["multi_fact_rationales"] = [ + }, { "family": "ons_population", "target_id": "ons.population.scotland_households_3plus_children", - "candidate_name": "ons/scotland_households_3plus_children", - "status": "adjudication_pending", - "signed_rationale": ( - "Remaining multi_fact is genuine: the selector reaches ONS " - "mid-year population age rows for Scotland across six eligible " - "periods, while the contract target is a household count with " - "three or more children. No Ledger household-composition fact " - "at or before 2025 is selected by the current contract, so " - "Microcosm must not adjudicate a replacement source here." - ), - } + "status": "signed_excluded", + "signed_rationale": report["targets"][ + "ons.population.scotland_households_3plus_children" + ]["candidates"][0]["signed_rationale"], + }, ] + report["multi_fact_rationales"] = [] _GEOGRAPHY_VALUE_IDS = frozenset( diff --git a/tools/score_uk_local_candidate.py b/tools/score_uk_local_candidate.py index beb278116..35cb64f14 100644 --- a/tools/score_uk_local_candidate.py +++ b/tools/score_uk_local_candidate.py @@ -27,7 +27,7 @@ relative_error_loss, ) -UK_LOCAL_ACTIVE_REFERENCE_COUNT = 19_618 +UK_LOCAL_ACTIVE_REFERENCE_COUNT = 19_932 UK_LOCAL_SCORE_TARGET_PERIOD = 2025 #: The incumbent is scored from published weights, never re-solved, so no #: incumbent holdout exists to place beside the candidate's rotation. From bb899ed33c70f12f02f5a1d2da76a0c7bc430915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 07:00:23 +0200 Subject: [PATCH 03/11] Port the childcare/TFC spine input and targets and activate the DfT bus targets (#834, #789) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lane A (D1–D6): a generic `assign_period_constant` source operation gives `frs_person_draws` the HMRC-derived `tax_free_childcare_spend_routed_share` from a new `stochastic` entry of the take-up contract at the build year (2024-04-01 → 0.593; 2017–2025 series from the March-2026 account-activity ODS, Chronicle package and sha pinned), with the stage's node key folding the contract sha, a build-year lockstep check against the installed engine, the degenerate-column and swap-register entries, and the H2 fixture regenerated. The contract's TFC citation is corrected, the targeted rationale added, and the extended-hours distribution moved to `frozen_by_adjudication`. The childcare fitter is rewritten: targets compiled from the contract and the pinned feed, four rates, hours frozen, identity-keyed draws, `--eps` recorded in the receipt. Lane B (D8–D13): five childcare rows declared once and resolved by period (`hmrc.tfc.*` at fiscal-year government/person grain; the three DfE rows with the `sum` cardinality guard, the `difference` operation and the observation basis), the two England bus rows active at household grain and the London, outside-London and UK rows declared with model-side filters but signed on the new `target_reference_signed_exclusions.json`; national references, membership, local references and the compile-parity receipts regenerated on feed `6ae49d7d…` (415 active / 7 no fact / 8 signed). Publisher fixtures for the tests are Chronicle rows (`uk_bus05i_fy2025.json`), never hand-copied. Two I0 defects fixed here: `dwp.uc.scotland_households_child_under_1` keeps its household-grain binding (the measure provider has no categorical household-to-benefit-unit broadcast, so the benefit-unit re-bind refused at calibration), and the held London / outside-London bus rows carry their region filters. Receipts: `experiments/834-childcare-tfc-receipts.md` Parts C–E (L2 column twin, L3 round trip, L5 fit diagnosis, bus re-measurement, both-basis table). Co-Authored-By: Claude Fable 5.1 --- .../uk-childcare-bus-targets-834-789.added.md | 1 + .../uk-childcare-fitter-834.changed.md | 1 + changelog.d/uk-tfc-routed-share-834.added.md | 1 + experiments/834-childcare-tfc-receipts.md | 184 ++- .../src/microcosm/build/ledger_targets.py | 114 +- .../src/microcosm/build/source_manifest.py | 1 + .../spec_engine/schema/sources.schema.json | 28 + .../build/target_reference_authoring.py | 18 + .../microcosm/build/uk/country_package.json | 5 + .../uk/degenerate_reviewed_exclusions.json | 7 + .../src/microcosm/build/uk/gates.json | 1 + ...ity_incumbent_2025_signed_differences.json | 55 +- ...ty_production_2023_signed_differences.json | 41 +- .../build/uk/local_target_references.json | 1 + .../uk/release_input_coverage_manifest.json | 26 +- .../src/microcosm/build/uk/source_stages.json | 106 +- .../src/microcosm/build/uk/spec/sources.yaml | 13 +- .../uk/spine_swap_signed_differences.json | 31 +- .../microcosm/build/uk/take_up_contract.json | 45 +- .../build/uk/target_reference_membership.json | 255 +++- .../target_reference_signed_exclusions.json | 69 + .../microcosm/build/uk/target_references.json | 340 ++++- .../build/uk/uk_data_target_parity.json | 2 +- .../build/uk/uk_population_targets.json | 1266 +++++++++++++---- .../build/uk_runtime/data_target_parity.py | 2 +- .../microcosm/build/uk_runtime/diagnostics.py | 5 + .../build/uk_runtime/frs_person_draws.py | 44 +- .../src/microcosm/build/uk_runtime/graph.py | 1 + .../build/uk_runtime/take_up_contract.py | 7 + .../build/uk_runtime/terminal_gates.py | 1 + .../tests/fixtures/uk_bus05i_fy2025.json | 12 + .../uk_target_reference_feed_rows.jsonl | 2 +- .../tests/test_country_spec.py | 4 +- .../tests/test_ledger_targets.py | 146 ++ .../tests/test_spec_engine_country_bundles.py | 2 +- .../tests/test_uk_battery_bindings.py | 4 +- .../tests/test_uk_bus_targets.py | 96 ++ .../tests/test_uk_childcare_targets.py | 66 + .../tests/test_uk_diagnostics.py | 6 + .../tests/test_uk_frs_stochastic.py | 14 +- .../tests/test_uk_national_calibration.py | 4 +- .../tests/test_uk_population_targets.py | 58 +- .../tests/test_uk_source_stages.py | 5 +- .../tests/test_uk_stochastic_tools.py | 75 +- .../tests/test_uk_take_up_contract.py | 58 +- .../tests/test_uk_target_references.py | 85 +- .../tests/test_uk_terminal_gates.py | 11 +- .../tests/test_uk_tfc_routed_share.py | 106 ++ .../src/microcosm/data/contract.py | 12 +- .../microcosm-data/tests/test_contract.py | 8 +- .../parity/uk_spine/sources/fixture.json | 22 +- .../fixtures/parity/uk_spine/uk_spine.json | 2 +- tools/fit_uk_childcare_takeup.py | 345 +++-- tools/generate_uk_target_references.py | 70 +- 54 files changed, 3367 insertions(+), 517 deletions(-) create mode 100644 changelog.d/uk-childcare-bus-targets-834-789.added.md create mode 100644 changelog.d/uk-childcare-fitter-834.changed.md create mode 100644 changelog.d/uk-tfc-routed-share-834.added.md create mode 100644 packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json create mode 100644 packages/microcosm-build/tests/fixtures/uk_bus05i_fy2025.json create mode 100644 packages/microcosm-build/tests/test_uk_bus_targets.py create mode 100644 packages/microcosm-build/tests/test_uk_childcare_targets.py create mode 100644 packages/microcosm-build/tests/test_uk_tfc_routed_share.py diff --git a/changelog.d/uk-childcare-bus-targets-834-789.added.md b/changelog.d/uk-childcare-bus-targets-834-789.added.md new file mode 100644 index 000000000..051722815 --- /dev/null +++ b/changelog.d/uk-childcare-bus-targets-834-789.added.md @@ -0,0 +1 @@ +Add five UK childcare calibration targets and two active England bus-finance targets, with six signed bus exclusions (#834, #789). diff --git a/changelog.d/uk-childcare-fitter-834.changed.md b/changelog.d/uk-childcare-fitter-834.changed.md new file mode 100644 index 000000000..0a70beac9 --- /dev/null +++ b/changelog.d/uk-childcare-fitter-834.changed.md @@ -0,0 +1 @@ +Rewrite the UK childcare take-up fitter to compile its five targets from the calibration contract and the pinned Chronicle feed, fit the four rates only with identity-keyed draws and the hours distribution frozen by adjudication, and record an explicit finite-difference step (`--eps`) in its provenance receipt (#834). diff --git a/changelog.d/uk-tfc-routed-share-834.added.md b/changelog.d/uk-tfc-routed-share-834.added.md new file mode 100644 index 000000000..364143cfa --- /dev/null +++ b/changelog.d/uk-tfc-routed-share-834.added.md @@ -0,0 +1 @@ +Add the HMRC-derived Tax-Free Childcare routed-spend share to the UK person spine and release contract (#834). diff --git a/experiments/834-childcare-tfc-receipts.md b/experiments/834-childcare-tfc-receipts.md index 0c30e6668..baecd9d77 100644 --- a/experiments/834-childcare-tfc-receipts.md +++ b/experiments/834-childcare-tfc-receipts.md @@ -84,10 +84,192 @@ arithmetic). No income, benefit or childcare input column moves. The childcare r ## Part C — column twin (L2), release round trip (L3), re-fit (L5), composition (L4) -Pending the Lane A/B increments. +### L4-pre — the I0 surface calibrated, before any childcare row exists + +Purpose: attribute the contract repair separately from the childcare targets. Input: the L1 +engine-only twin (2.94.0, no routed share); surface: the I0 commit's 408 references on feed +`6ae49d7d…`; solve: 1 500 epochs, `family_equal`, the packaged measure exclusions (364 targets in +the matrix); driver tree: a scratch worktree at the I0 commit (`l4pre-i0/`). + +| | value | +|---|---| +| initial → final loss | 0.374 → 0.0259 | +| within 10% / within 25% | 330 / 357 of 364 | +| ESS / max weight ratio / top-1% share | 5 733 / 10.0 / 0.189 | +| caseload `dwp.uc.households` (6 758 889) | −25.4% → **−12.7%** | +| 84 payment-band rows (2025 averages) | median 0.1%, max 3.6% | +| `hmrc.cgt.gains_total` (£127.3bn, TY2024) / `taxpayers_total` (584 000) | −50.1% → −0.6% / −38.9% → −0.2% | +| **`obr.capital_gains_tax` (£21.8bn, 2025-26)** | −27.6% → **+43.7%** | +| Scotland UC youngest child < 1 (14 333) | +8.5% → −0.2% | + +The terminal battery blocks on seven `uk_target_fit` cells: the four UC with-children cells +(single_with_children −34.0%, children_1 −25.8%, children_2 −39.7%, children_5_or_more −28.4%), +two state-pension SPI bands (+33.2%, +26.7%) — all signed on the publication stack's +`target_fit_reviewed_exclusions.json`, which main does not carry — and one new cell: +**OBR CGT receipts +43.7%.** The re-pin moved the two CGT totals from tax year 2023-24 (the +latest fact on the previous feed) to 2024-25 (HMRC's 2026 release, £127.3bn of gains against +£65.9bn a year earlier: the realisations brought forward ahead of the October 2024 rate rise). The +solve fits the 2024-25 gains to 0.6% and, at 2025-26 policy, the frame's CGT liability then +overshoots OBR's 2025-26 receipts line by 44% (it was −25% under with the 2023-24 gains). Neither +vintage of gains reproduces the OBR line; the choice is the CGT lane's (#467 / #725 / #552, #736 +"CGT 2025 level") and is put to María as A21. + +**Defect found and fixed here:** I0 had re-bound `dwp.uc.scotland_households_child_under_1` at +benefit-unit grain with a `region` filter; the calibration's measure provider has no categorical +household-to-benefit-unit broadcast (`compute_uk_measure_input` broadcasts categoricals to +persons only), so the run refused with `provider does not know benunit.region`. The row keeps +its household-grain binding (`household_conditions`, the pre-I0 form) with the tightened +selector and the family's calendar-year average; validated by this run. + +### L2 — column twin (I1 + I2 tree on `14c71008`, built at 2.94.0) + +Tree: the I0 commit plus the uncommitted Lane A/B increments (`TREE_HEAD`: `14c71008`, 46 files +changed); the same licensed inputs and the same `build_twin.sh` invocation as L1. Build: exit 0, +28 stages, rows 113 626 / 61 234 / 52 846, all 15 spine gates `passed` +(`l2-column-twin/l2-column.spine_gates.json`), engine 2.94.0. The new column is present from +`frs_person_draws` onward with nonzero share 1.0 (every person carries the build-year value; the +degenerate-column register carries its signed entry). + +**Payload against L1 (`compare_uk_h5_payload.py`, `l2_vs_l1_payload.json`)** — the only +between-twin difference is the new column and its consequences: + +| table | columns only in L2 | columns moved | rows moved | +|---|---|---|---| +| benunit | — | 0 / 11 | 0 | +| time_period | — | 0 | 0 | +| person | `tax_free_childcare_spend_routed_share` | 1 (`student_loan_balance`) | 64 (the `top_up_to_stock` selection; no cash column moves) | +| household | — | 38 / 66 | see below | + +The 38 household columns are exactly the imputed surfaces (WAS wealth, LCFS consumption, ETB +services) and their deterministic derivatives; no FRS-carried column moves. Root cause, proven +at engine level (`l2_vs_l1_net_income_decomposition.log`): the routed share lowers +`tax_free_childcare` for 1 414 households (unweighted £1.228m → £0.797m; the £2 000 cap binds for +some, hence 0.65 rather than 0.593), `hbai_household_net_income` moves for exactly those 1 414 +and for no others, and the three imputation stages read `household_net_income` / +`hbai_household_net_income` as predictors. Market income, income tax, National Insurance, +council tax, UC, child benefit, housing benefit, pension credit, student-loan repayments and CGT +are byte-equal between the twins. + +| stage | households re-drawn | of which TFC households | mechanism | +|---|---|---|---| +| `was_wealth` | 654 | 536 | predictor move → correlated-rank re-draw (the 686 E5 class); the remainder are threshold neighbours (owner share 0.89 vs 0.63 in the frame) | +| `lcfs_consumption` | 1 196 | 946 | as above, plus WAS-drawn predictors | +| `etb_services` | 1 027 | 768 | as above | +| `regional_property_uprating` | 31 084 (every owner) | — | deterministic: the regional owner mean re-solves once any owner draw moves; median relative move 3.2e-4 | +| LCFS energy IPF (`electricity`, `gas`, folded `domestic_energy_consumption`) | 52 586 | — | deterministic: the weighted IPF on income/tenure/accommodation/region margins re-solves for the whole frame; median relative move 6e-4 – 1.1e-3 | + +Aggregate mass per column (`l2_vs_l1_household_magnitudes.json`, unweighted column totals): +largest moves `bus_fare_spending` +0.89%, `education_consumption` +0.72%, `diesel_spending` ++0.54%, `rail_usage`/`rail_subsidy_spending` −0.37%; every other column within ±0.2%, the energy +trio and the property pair within ±1.2e-4. On the release payload these feed back into +`household_tax` (VAT for 1 342 households, fuel duty for 453, and a sub-£1 energy-tax ripple on +40 491) and `household_benefits` (the 1 414 TFC households plus the in-kind ETB columns); net +household income moves by −£0.27m unweighted across the frame. + +Classification for the swap register: **net-new person column + engine-predictor re-draw of the +imputed household surfaces**, the same class the L1 twin showed against spine-n under the engine +bump, with a smaller footprint (1 414 root households against a frame-wide net-income shift). +No cash column, weight column or benefit-unit column moves. + +### L3 — release round trip (L2 read by policyengine-uk 2.94.0) + +`l0_childcare_receipt.py` on `l2-column.h5` (`l3_l2_column_childcare_receipt.json`): the engine +reads `tax_free_childcare_spend_routed_share` at 0.593 (float32) for every person at both 2024 +and 2025 — the 2024-04-01 contract value, as the build-year lock requires. Against the same five +facts as L0/L1 (model ÷ target, weights as built, before any calibration): + +| target (basis) | L0 = L1 | L3 | +|---|---|---| +| TFC top-up £ (FY2024-25 / FY2025-26) | 1.073 / 1.174 | **0.698 / 0.772** | +| TFC children with used accounts | 1.020 / 0.951 | 1.020 / 0.951 | +| extended entitlement children 2–4, England (Jan 2024 / Jan 2025) | 1.283 / 1.261 | 1.283 / 1.261 | +| targeted 2-year-olds, England | 0.596 / 0.738 | 0.596 / 0.738 | +| universal-only 3–4s, England | 1.104 / 1.177 | 1.104 / 1.177 | + +Only the spend row moves, by the routed share (×0.65 on the top-up, the cap binding for part of +the population) — the four count rows are identical to L0 to three decimals, which is the +"routed share touches spend, not eligibility or take-up" property the issue describes. The L0 +spend ratio of 1.07 was the un-routed accident that #472 corrected; the re-fit at L5 works from +the routed 0.70. + +### L5 — re-fit of the four take-up rates (A6: 2024 base, hours frozen) + +`tools/fit_uk_childcare_takeup.py` on `l2-column.h5` (sha `2c69544b…`), feed `6ae49d7d…`, +`--target-period 2024`, `--vintage-override dfe.funded_childcare.working_parent_children_2_to_4=2025` +(the Jan-2024 2-year-old cell is suppressed; Part E), seed 42, engine 2.94.0, routed share 0.593 +injected from the contract, hours distribution frozen (15.019 / 4.972 / [0, 30]). Targets as +compiled: £632.2m, 1 085 020, 621 482, 115 852, 416 537. + +**First run (`fit_2024.json`, defaults: L-BFGS-B, maxiter 5, eps 1e-2): did not converge** +(`success: false`, loss 0.302). TFC 0.88 → 0.959, extended 0.812 → 0.559, universal 0.563 → +0.447, targeted **0.597 → 0.597 (never moved)**; achieved ÷ target: TFC spend 0.785, TFC +children 1.104, extended 0.943, targeted 0.508, universal 0.984. + +Diagnosis (`l5-refit/runner_probe.log`, the fitter's own runner on the same H5): + +| probe | result | +|---|---| +| stored build draws, no injection | targeted 69 050 (0.596×) from **94 flagged sample children**; 1 290 two-year-olds in the frame, 94 with a positive entitlement | +| runner at the frozen rates, seed 42 / seed 0 | targeted 54 889 / 62 521 (0.47× / 0.54×) — the realisation noise of a ~157-child eligible base carrying £-weights of hundreds each | +| targeted rate 0.597 → 0.607 (the optimizer's step) | **identical count** (54 889): a 0.01 step flips no unit at this base, so the forward difference reads zero and L-BFGS-B never moves the parameter | +| targeted rate 0.697 / 0.90 | 66 101 / 88 036 — the row responds, but even at 0.90 it reaches 0.76× | + +So the targeted row is (i) below the draw resolution of a 1e-2 finite-difference step and (ii) +near its reachable ceiling at design weights: the eligible base — England, a qualifying benefit +or UC/TC criterion, **and not extended-eligible** (the engine's mutual exclusion; extended now +covers working-parent 2-year-olds) — is ~157 sample children, and a rate of 1.0 lands at roughly +0.85–1.0× on the build's realisation. That is a frame/rules property the calibration weights +absorb (the publication-stack solve, L4), not something a take-up scalar reaches; uk-data's own +release sits at 0.78× on the same row. The TFC pair is the routed-share tension the issue +predicted: with spend routed at 0.593, the least-squares compromise pushes the TFC rate to ~0.96 +(children +10%, spend −21%) because the frame's spend per child is below HMRC's. + +The fitter gains an `--eps` flag (default unchanged at 1e-2, recorded in the receipt) so the +step can exceed the smallest eligible base's resolution; the fitter's draws are its own +identity-keyed realisation (seed 42 by default; seed 0 does not reproduce the build's stage +draws either), so a fitted rate is a population parameter and the build's flip set differs by +sampling noise — for targeted, ±10–20% at this base. The exact fix — an expected-count objective +(rate × weight over the rules-eligible base, no draw) with an analytic gradient — is a fitter +redesign outside this PR and is filed as a follow-up. + +**Second run (`fit_2024_eps05.json`: maxiter 10, eps 0.05):** pending. ## Part D — bus (#789) E9's Part D (`experiments/685-net-new-stages-receipts.md`) is the sizing evidence: at design weights England fares 0.56× BUS05ai and net support 0.71× BUS05bi; London 0.28×; England outside London 0.74× / 0.97×; the LCFS fare gradient runs against NTS0705a (#790's disposition). + +Re-measured on the L2 column twin against the FY2025 facts the two active rows bind +(`l2_bus_design_weight_receipt.json`, design weights, `region` ≠ Scotland/Wales/NI as England): + +| row | fact (FY2025, £bn) | L2 twin at design weights | ratio | +|---|---|---|---| +| `dft.bus_fare_receipts.england` (active) | 3.417 | 1.945 | 0.569 | +| `dft.bus_net_support.england` (active) | 3.025 | 2.153 | 0.712 | +| London fares (held, `region == LONDON`) | 1.347 | 0.372 | 0.276 | +| outside-London fares (held) | 2.070 | 1.573 | 0.760 | +| outside-London net support (held) | 1.895 | 1.836 | 0.969 | + +The frame reproduces E9's shape to the second decimal, so the routed share and the re-pin +leave the bus surface where E9 measured it: the England rows go to the solver at 0.57× / 0.71×, +which is the #790 gradient question (London's 0.28× against outside-London's 0.76× is the LCFS +fare gradient, not a weighting residual) and the reason the London / outside-London rows are +declared with their model-side filters but signed-excluded rather than bound. The feed carries +no UK-level fare or support fact (BUS05i is England-only), so the `.uk` rows stay signed-excluded +on that ground. + +## Part E — the childcare rows at both bases (declared once, resolved by period) + +Compiled from the pinned feed with the committed declarations (`compile_ledger_target_references`), +restamped at each target period — the rule A1 ruled: + +| row | at 2024 (fitter basis) | at 2025 (calibration basis) | +|---|---|---| +| `hmrc.tfc.government_top_up` | £632.2m (FY2024-25) | £599.8m (FY2025-26) | +| `hmrc.tfc.children_with_used_accounts` | 1 085 020 | 1 151 515 | +| `dfe.funded_childcare.working_parent_children_2_to_4` | refuses: DfE suppresses the Jan-2024 2-year-old cell, the sum's cardinality guard reports one member of two (the fitter uses its Jan-2025 vintage override) | 621 482 (Jan-2025, 2 members) | +| `dfe.funded_childcare.early_learning_2_year_olds` | 115 852 (Jan-2024) | 95 031 (Jan-2025) | +| `dfe.funded_childcare.universal_only_children` | 416 537 (Jan-2024, `difference` of 2) | 396 965 (Jan-2025) | + +The 2024 column is the #834 contract as written; the 2025 column is what the calibration binds. diff --git a/packages/microcosm-build/src/microcosm/build/ledger_targets.py b/packages/microcosm-build/src/microcosm/build/ledger_targets.py index 83bca9306..fe0391e59 100644 --- a/packages/microcosm-build/src/microcosm/build/ledger_targets.py +++ b/packages/microcosm-build/src/microcosm/build/ledger_targets.py @@ -23,12 +23,21 @@ ALLOWED_ASSERTION_POLICIES = frozenset(("observed_only", "allow_source_projection")) ALLOWED_PERIOD_MATCH_POLICIES = frozenset(("latest_not_after", "exact")) ALLOWED_VALUE_OPERATIONS = frozenset( - ("identity", "sum", "calendar_year_average", "latest_plateau", "count_x_mean") + ( + "identity", + "sum", + "difference", + "calendar_year_average", + "latest_plateau", + "count_x_mean", + ) ) MULTI_FACT_VALUE_OPERATIONS = frozenset( - ("sum", "calendar_year_average", "latest_plateau", "count_x_mean") + ("sum", "difference", "calendar_year_average", "latest_plateau", "count_x_mean") +) +EXACT_PERIOD_VALUE_OPERATIONS = frozenset( + ("identity", "sum", "difference", "count_x_mean") ) -EXACT_PERIOD_VALUE_OPERATIONS = frozenset(("identity", "sum", "count_x_mean")) DEFAULT_HIERARCHY_MATCH_SPEC_FIELDS = ("entity", "period", "family", "filter") @@ -71,6 +80,8 @@ class LedgerTargetReference: ledger_source_record_id: str = "" ledger_selector: Mapping[str, object] = field(default_factory=dict) value_operation: str = "identity" + value_operands: tuple[Mapping[str, object], ...] = () + expected_member_count: int | None = None entity: str = "" measure: str | None = None filter: str | None = None @@ -111,6 +122,22 @@ def __post_init__(self) -> None: f"LedgerTargetReference {self.name!r}: ledger_selector must be a " f"mapping, got {type(self.ledger_selector).__name__}." ) + if self.expected_member_count is not None and ( + isinstance(self.expected_member_count, bool) + or not isinstance(self.expected_member_count, int) + or self.expected_member_count <= 0 + ): + raise ValueError( + f"LedgerTargetReference {self.name!r}: expected_member_count " + "must be a positive integer." + ) + if self.value_operation == "difference": + roles = [str(operand.get("role")) for operand in self.value_operands] + if roles != ["minuend", "subtrahend"]: + raise ValueError( + f"LedgerTargetReference {self.name!r}: difference requires " + "exactly ordered minuend/subtrahend operands." + ) if self.assertion_policy not in ALLOWED_ASSERTION_POLICIES: raise ValueError( f"LedgerTargetReference {self.name!r}: unsupported " @@ -590,6 +617,13 @@ def target_spec_from_ledger_reference( numeric_value = numeric_values[0] * numeric_values[1] elif reference.value_operation == "sum": numeric_value = sum(numeric_values) + elif reference.value_operation == "difference": + numeric_value = numeric_values[0] - numeric_values[1] + if not math.isfinite(numeric_value) or numeric_value < 0: + raise ValueError( + f"Ledger target reference {reference.name!r}: difference " + f"produced invalid value {numeric_value!r}." + ) else: numeric_value = numeric_values[0] representative_fact = _value_representative_fact( @@ -948,6 +982,8 @@ def _resolve_reference_fact( eligible_matches = _eligible_selector_matches(reference, matches) if reference.value_operation == "sum" and eligible_matches: return _resolve_sum_reference_facts(reference, eligible_matches) + if reference.value_operation == "difference" and eligible_matches: + return _resolve_difference_reference_facts(reference, eligible_matches) if reference.value_operation == "calendar_year_average" and eligible_matches: return _resolve_calendar_year_average_reference_facts( reference, eligible_matches @@ -1020,6 +1056,15 @@ def _resolve_sum_reference_facts( if period_key == latest_period for fact in facts ] + if ( + reference.expected_member_count is not None + and len(latest_matches) != reference.expected_member_count + ): + raise ValueError( + f"Ledger target reference {reference.name!r}: value_operation=sum " + f"expected {reference.expected_member_count} members at the latest " + f"period but resolved {len(latest_matches)}; a declared member is missing." + ) return tuple( sorted( latest_matches, @@ -1028,6 +1073,54 @@ def _resolve_sum_reference_facts( ) +def _resolve_difference_reference_facts( + reference: LedgerTargetReference, + eligible_matches: list[object], +) -> tuple[object, ...]: + resolved: list[object] = [] + for operand in reference.value_operands: + dimensions = operand.get("dimension_values") + if not isinstance(dimensions, Mapping): + raise ValueError( + f"Ledger target reference {reference.name!r}: difference operand " + "requires dimension_values." + ) + shared_dimensions = reference.ledger_selector.get("dimension_values") + selector = { + **dict(reference.ledger_selector), + **{ + str(key): value + for key, value in operand.items() + if key not in {"role", "dimension_values"} + }, + "dimension_values": { + **( + dict(shared_dimensions) + if isinstance(shared_dimensions, Mapping) + else {} + ), + **dict(dimensions), + }, + } + matches = [ + fact for fact in eligible_matches if _fact_matches_selector(fact, selector) + ] + match = _latest_period_selector_match(reference, matches) + if match is None: + raise ValueError( + f"Ledger target reference {reference.name!r}: difference operand " + f"{operand.get('role')!r} did not resolve exactly once." + ) + resolved.append(match) + periods = {_period_key(fact) for fact in resolved} + if len(periods) != 1: + raise ValueError( + f"Ledger target reference {reference.name!r}: difference operands " + "must resolve at the same latest period." + ) + return tuple(resolved) + + def _resolve_calendar_year_average_reference_facts( reference: LedgerTargetReference, eligible_matches: list[object], @@ -1292,6 +1385,13 @@ def _validate_resolved_reference_fact( f"vintage {vintage_pin!r}, but resolved fact has vintage " f"{_at(fact, 'geography', 'vintage')!r}." ) + entity_pin = reference.ledger_selector.get("entity_name") + if entity_pin is not None and _str_at(fact, "entity", "name") != entity_pin: + raise ValueError( + f"Ledger target reference {reference.name!r} requires entity_name " + f"{entity_pin!r}, but resolved fact has entity " + f"{_at(fact, 'entity', 'name')!r}." + ) def _validate_reference_period(fact: object, reference: LedgerTargetReference) -> None: @@ -1333,7 +1433,9 @@ def _latest_period_selector_match( reference: LedgerTargetReference, matches: list[object], ) -> object | None: - if len(matches) < 2: + if len(matches) == 1: + return matches[0] + if not matches: return None semantic_keys = {_selector_period_invariant_key(fact) for fact in matches} if len(semantic_keys) != 1: @@ -1409,6 +1511,8 @@ def _is_period_fragment(value: str) -> bool: normalized = value.lower().replace("-", "_") if _is_period_token(normalized): return True + if normalized.startswith("year") and _is_period_token(normalized[4:]): + return True month_names = ( "jan", "january", @@ -1641,6 +1745,8 @@ def _reference_metadata(reference: LedgerTargetReference) -> dict[str, str]: metadata["ledger_value_operation"] = reference.value_operation metadata["ledger_assertion_policy"] = reference.assertion_policy metadata["ledger_period_match_policy"] = reference.period_match_policy + if reference.value_operation == "difference": + metadata["ledger_value_formula"] = "minuend - subtrahend" for key, value in sorted(reference.ledger_selector.items()): if isinstance(value, Mapping): continue diff --git a/packages/microcosm-build/src/microcosm/build/source_manifest.py b/packages/microcosm-build/src/microcosm/build/source_manifest.py index e7681bdbe..21f450da5 100644 --- a/packages/microcosm-build/src/microcosm/build/source_manifest.py +++ b/packages/microcosm-build/src/microcosm/build/source_manifest.py @@ -47,6 +47,7 @@ "assign_binary_from_rate", "assign_binary_with_anchored_residual", "assign_clipped_normal", + "assign_period_constant", "assign_student_loan_plan_cohorts", "assign_uniform_draw", "aggregate_person_to_benunit", diff --git a/packages/microcosm-build/src/microcosm/build/spec_engine/schema/sources.schema.json b/packages/microcosm-build/src/microcosm/build/spec_engine/schema/sources.schema.json index aa43f8ec7..8b92992c9 100644 --- a/packages/microcosm-build/src/microcosm/build/spec_engine/schema/sources.schema.json +++ b/packages/microcosm-build/src/microcosm/build/spec_engine/schema/sources.schema.json @@ -5759,6 +5759,34 @@ } } }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "kind", + "output", + "contract_key", + "period_source", + "dtype" + ], + "properties": { + "kind": { + "const": "assign_period_constant" + }, + "output": { + "type": "string" + }, + "contract_key": { + "type": "string" + }, + "period_source": { + "const": "build_year" + }, + "dtype": { + "const": "float64" + } + } + }, { "type": "object", "additionalProperties": false, 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 64543c053..868584e80 100644 --- a/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py +++ b/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py @@ -55,6 +55,9 @@ class TargetReferenceAuthoringConfig: selector_pins_by_target_id: Mapping[str, Mapping[str, Any]] = field( default_factory=dict ) + reference_metadata_by_target_id: Mapping[str, Mapping[str, str]] = field( + default_factory=dict + ) signed_exclusions_by_target_id: Mapping[str, str] = field(default_factory=dict) binding_vocabulary: frozenset[str] = frozenset() source_fact_feed: str = "" @@ -435,6 +438,7 @@ def target_references_resource( "allowed_value_operations": [ "identity", "sum", + "difference", "calendar_year_average", "latest_plateau", "count_x_mean", @@ -725,6 +729,7 @@ def _reference_row( "metadata": { "contract_target_id": target_id, "measure_kind": "prepared_column", + **dict(config.reference_metadata_by_target_id.get(target_id, {})), }, } assertion_policy = target.get("assertion_policy") @@ -735,6 +740,19 @@ def _reference_row( value_operation = "sum" if value_operation is not None and value_operation != "identity": row["value_operation"] = value_operation + operands = target.get("value_operands") + if operands is not None: + row["value_operands"] = operands + dimension_values = selector.get("dimension_values") + if value_operation == "sum" and isinstance(dimension_values, Mapping): + member_count = 1 + has_list = False + for value in dimension_values.values(): + if isinstance(value, list): + has_list = True + member_count *= len(value) + if has_list: + row["expected_member_count"] = member_count return row diff --git a/packages/microcosm-build/src/microcosm/build/uk/country_package.json b/packages/microcosm-build/src/microcosm/build/uk/country_package.json index 7fdc2720a..f5a766850 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/country_package.json +++ b/packages/microcosm-build/src/microcosm/build/uk/country_package.json @@ -177,6 +177,11 @@ "kind": "legacy_json", "schema_id": "legacy_json" }, + { + "path": "target_reference_signed_exclusions.json", + "kind": "legacy_json", + "schema_id": "legacy_json" + }, { "path": "input_mass_reviewed_exclusions.json", "kind": "legacy_json", diff --git a/packages/microcosm-build/src/microcosm/build/uk/degenerate_reviewed_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/degenerate_reviewed_exclusions.json index 26e356543..6ddd4fc6e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/degenerate_reviewed_exclusions.json +++ b/packages/microcosm-build/src/microcosm/build/uk/degenerate_reviewed_exclusions.json @@ -8,6 +8,13 @@ "adjudication": "microcosm#630", "approved_on": "2026-08-10", "expires_on": "2027-02-10" + }, + "person.tax_free_childcare_spend_routed_share": { + "reason": "Constant by construction: the published FY mean of an HMRC account-activity proxy assigned without an invented distribution (uk-data #473 judgement, microcosm#834); not signal.", + "approved_by": "juaristi22", + "adjudication": "microcosm#834", + "approved_on": "2026-09-05", + "expires_on": "2027-03-05" } } } diff --git a/packages/microcosm-build/src/microcosm/build/uk/gates.json b/packages/microcosm-build/src/microcosm/build/uk/gates.json index efb84c369..3844e506a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/gates.json +++ b/packages/microcosm-build/src/microcosm/build/uk/gates.json @@ -629,6 +629,7 @@ "person.sic_industry_division", "person.student_loan_balance", "person.student_loan_plan", + "person.tax_free_childcare_spend_routed_share", "person.would_claim_marriage_allowance", "person.would_claim_scp" ], 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 3bfe535bc..95d9a7109 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": 408, + "compiled_count": 415, "counts_by_kind": { "calibration_drift": 172, "fixture_only": 267, - "ledger_only": 38 + "ledger_only": 45 }, - "difference_count": 477, + "difference_count": 484, "differences": [ { "fixture_value": 1608000.0, @@ -1876,6 +1876,41 @@ "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": 3417388656.43538, + "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": 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": 597920.0, @@ -2002,6 +2037,20 @@ "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": 7553013.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 a34a5e228..80039a988 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": 217, + "compiled_count": 222, "counts_by_kind": { "calibration_drift": 12, "fixture_only": 125, - "ledger_only": 193 + "ledger_only": 198 }, - "difference_count": 330, + "difference_count": 335, "differences": [ { "fixture_value": 82000.0, @@ -882,6 +882,34 @@ "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 124211.0, + "name": "dfe.funded_childcare.early_learning_2_year_olds", + "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", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3105254075.49544, + "name": "dft.bus_fare_receipts.england", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2247884765.6, + "name": "dft.bus_net_support.england", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 69861000000.0, @@ -896,6 +924,13 @@ "period": 2023, "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", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 222000.0, diff --git a/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json b/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json index ee618142e..5023d8607 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/local_target_references.json @@ -4,6 +4,7 @@ "allowed_value_operations": [ "identity", "sum", + "difference", "calendar_year_average", "latest_plateau", "count_x_mean" diff --git a/packages/microcosm-build/src/microcosm/build/uk/release_input_coverage_manifest.json b/packages/microcosm-build/src/microcosm/build/uk/release_input_coverage_manifest.json index a763725ee..e8a531c25 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/release_input_coverage_manifest.json +++ b/packages/microcosm-build/src/microcosm/build/uk/release_input_coverage_manifest.json @@ -473,7 +473,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "HMRC Capital Gains Tax statistics, July 2025, Table 2.1a", "survey": "HMRC Capital Gains Tax statistics Table 2.1a and Advani-Summers capital-gains incidence" @@ -496,7 +496,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "Advani and Summers (2020), Capital Gains and UK Inequality, CAGE Working Paper 465", "survey": "Family Resources Survey 2024-25, SPI synthetic support, and Advani-Summers capital-gains incidence" @@ -525,7 +525,7 @@ "required_mass_change_reason": "E5 source-stage transform preserves household rows and typed household weights; total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "UK Data Service SN 8856 Effects of Taxes and Benefits household tab, DfT rail fare index, and public NHS activity/cost table.", "survey": "Effects of Taxes and Benefits 1977-2024 and NHS age-gender public table" @@ -545,7 +545,7 @@ "required_mass_change_reason": "E5 source-stage transform preserves household rows and typed household weights; total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "UK Data Service SN 8856 Effects of Taxes and Benefits household tab and cited VAT anchor resource.", "survey": "Effects of Taxes and Benefits 1977-2024" @@ -576,7 +576,7 @@ "superseded_by": { "reason": "The FRS spine build executes hmrc_cgt_gains_spine, which applies the same HMRC Table 3 amounts redraw directly in source_stages.json before calibration.", "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "stage": "hmrc_cgt_gains_spine" } }, @@ -596,7 +596,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "hmrc_surface": "2023-24", "mapped_build_period": "2024" @@ -610,7 +610,7 @@ "base_candidate_tier": "frs", "calibration_permitted": false, "canonical_source_manifest": "source_stages.json", - "canonical_source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "canonical_source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "effective_mass_requirements": { "charitable_investment_gifts": { "mass_share_denominator": "all_person_effective_mass", @@ -693,7 +693,7 @@ "superseded_by": { "reason": "The FRS spine build executes hmrc_spi_income_spine, which supersedes the June retained-leaves/hmrc_spi_income pair inside source_stages.json.", "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "stage": "hmrc_spi_income_spine" } }, @@ -727,7 +727,7 @@ "required_mass_change_reason": "E5 source-stage transform preserves household rows and typed household weights; total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "UK Data Service SN 9468 Living Costs and Food Survey 2023-24 household/person tabs, NEED 2023 headline energy tables, Ofgem Q2 2026 unit rates, and WAS round-8 bridge donor.", "survey": "Living Costs and Food Survey 2023-24" @@ -748,7 +748,7 @@ "property_wealth" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "MHCLG dwellings and ONS UK House Price Index December 2025 regional average prices.", "survey": "Public regional property reference" @@ -772,7 +772,7 @@ "employee_pension_contributions" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "HMRC, Salary sacrifice reform for pension contributions effective from 6 April 2029", "survey": "Family Resources Survey 2024-25 salary-sacrifice respondents and HMRC salary-sacrifice reform analysis" @@ -794,7 +794,7 @@ "student_loan_plan" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "Explore Education Statistics Table 6a, Higher education total", "survey": "Family Resources Survey 2024-25 and Student Loans Company borrower forecasts for England" @@ -829,7 +829,7 @@ "required_mass_change_reason": "E5 source-stage transform preserves household rows and typed household weights; total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "214de0aca954786bf819b2e664dd96585de5c17dcd51b61fdac7d9833cd18ad7", + "source_manifest_sha256": "05ccf7a780a48af62817a7d4922c4229b82a470951075f90811d40ab5d5cdb18", "source_vintages": { "source": "Office for National Statistics Wealth and Assets Survey, UK Data Service SN 7215, DOI 10.5255/UKDA-SN-7215-20; local licensed 2006-22 household tab.", "survey": "Wealth and Assets Survey round 8" diff --git a/packages/microcosm-build/src/microcosm/build/uk/source_stages.json b/packages/microcosm-build/src/microcosm/build/uk/source_stages.json index f39c6f437..52b06e46a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/source_stages.json +++ b/packages/microcosm-build/src/microcosm/build/uk/source_stages.json @@ -362,50 +362,50 @@ "grain": "person", "artifacts": [ { - "format": "json", + "role": "age_tail_band_populations", "kind": "public_aggregate_reference", "resource": "ons_age_tail_band_populations.json", - "role": "age_tail_band_populations", + "format": "json", "runtime_sha256_required": true } ], "operations": [ { + "kind": "disaggregate_top_coded_ages", + "output": "age", + "resource": "ons_age_tail_band_populations.json", + "top_code": 80, "bands": [ { - "low": 80, "name": "80_84", + "low": 80, "width": 5 }, { - "low": 85, "name": "85_89", + "low": 85, "width": 5 }, { - "low": 90, "name": "90_plus", + "low": 90, "width": 8 } ], + "seed": 0, "draw_key": "person_id", - "kind": "disaggregate_top_coded_ages", - "output": "age", - "reason": "Age disaggregation rewrites an existing person column in place; no rows move, no weights change, and total household mass is conserved.", - "resource": "ons_age_tail_band_populations.json", "salt_streams": [ "band", "within" ], - "seed": 0, - "top_code": 80 + "reason": "Age disaggregation rewrites an existing person column in place; no rows move, no weights change, and total household mass is conserved." } ], "outputs": [], - "notes": "The licensed FRS records no age above 80, so every 80+ person arrives piled at exactly 80 and the 85-89 and 90+ population targets are structurally unbindable; the incumbent shares the defect. Each piled base person draws a band from the sex-specific ONS inverse CDF and a uniform integer age within it, keyed on person_id. Runs immediately after frs_spine, before every stage that conditions on age, so all age-conditioned imputations derive from the disaggregated surface. The stage precedes person_source_id provenance; later support and capital-gains clones copy the donor's rewritten age, preserving the #623 final-age identity invariant. Ages are assigned toward the ONS distribution; calibration still owns the totals.", "rewrites": [ "age" - ] + ], + "notes": "The licensed FRS records no age above 80, so every 80+ person arrives piled at exactly 80 and the 85-89 and 90+ population targets are structurally unbindable; the incumbent shares the defect. Each piled base person draws a band from the sex-specific ONS inverse CDF and a uniform integer age within it, keyed on person_id. Runs immediately after frs_spine, before every stage that conditions on age, so all age-conditioned imputations derive from the disaggregated surface. The stage precedes person_source_id provenance; later support and capital-gains clones copy the donor's rewritten age, preserving the #623 final-age identity invariant. Ages are assigned toward the ONS distribution; calibration still owns the totals." }, { "stage": "frs_employment", @@ -792,7 +792,14 @@ "survey": "Family Resources Survey 2024-25", "source": "Sourced UK take-up contract rates and identity-keyed deterministic draws.", "grain": "person", - "artifacts": [], + "artifacts": [ + { + "role": "stochastic_contract", + "resource": "take_up_contract.json", + "kind": "public_aggregate_reference", + "format": "json" + } + ], "operations": [ { "kind": "assign_binary_from_rate", @@ -821,15 +828,24 @@ "kind": "assign_uniform_draw", "output": "attends_private_school_random_draw", "seed": 0 + }, + { + "kind": "assign_period_constant", + "output": "tax_free_childcare_spend_routed_share", + "contract_key": "tax_free_childcare_spend_routed_share", + "period_source": "build_year", + "dtype": "float64" } ], "outputs": [ "would_claim_marriage_allowance", "would_claim_scp", - "attends_private_school_random_draw" + "attends_private_school_random_draw", + "tax_free_childcare_spend_routed_share" ], "nonnegative_outputs": [ - "attends_private_school_random_draw" + "attends_private_school_random_draw", + "tax_free_childcare_spend_routed_share" ], "notes": "Identity-keyed seed 0 streams replace the incumbent sequential take-up seed 100; higher_earner_tie_break is intentionally not produced." }, @@ -2040,8 +2056,8 @@ "require_all_predictors": true, "require_all_outputs": true, "initialize_frs_channel_columns": { - "gift_aid": 0, - "charitable_investment_gifts": 0 + "gift_aid": 0.0, + "charitable_investment_gifts": 0.0 }, "n_estimators": 100, "seed": 42 @@ -2474,46 +2490,47 @@ "notes": "Runs the SPI-trained income QRFs on the raw-spine support channel, initializes FRS charity columns to zero, trains FRS-only stage 2 before redrawing base-channel dividends, and emits a sidecar-only 208-fact replay report for the spine path." }, { - "artifacts": [], + "stage": "uc_reporter_redraw", + "survey": "Family Resources Survey 2024-25", + "source": "Family Resources Survey 2024-25 reported Universal Credit amounts, conditioned on benefit-unit composition and post-SPI incomes with PolicyEngine-UK eligibility inputs.", "grain": "benunit", - "notes": "Runs after the person-grain SPI income chain and before UC capital coherence. One temporary engine simulation screens both FRS and SPI benefit units to a positive pre-take-up award using FRS-carried capital AND at least one non-child member (uc_maximum_amount pays qualifying-young-person-only units mechanically), and materializes the UC child and state-pension-age flags; engine-known values are consumed only. A benefit-unit RegimeGatedQRF fitted on the screened base domain draws the screened SPI domain (rows); the rewrite domain (rewrite_rows) is the whole SPI channel, so screen-failing SPI units are zeroed. Each positive amount lands on one deterministic adult claimant; base-FRS rows remain byte-unchanged; an empty screened SPI domain refuses.", + "artifacts": [], "operations": [ { + "kind": "derive", "derived": { - "claimable_screen": "positive_pre_takeup_uc_award AND has_non_child_member", - "has_non_child_member": "any(NOT is_child_or_qualifying_young_person_for_universal_credit) over benefit-unit members", + "uc_reported_capital": "frs_benunit_capital", "positive_pre_takeup_uc_award": "max(0, uc_maximum_amount - uc_income_reduction) > 0", - "uc_reported_capital": "frs_benunit_capital" - }, - "kind": "derive" + "has_non_child_member": "any(NOT is_child_or_qualifying_young_person_for_universal_credit) over benefit-unit members", + "claimable_screen": "positive_pre_takeup_uc_award AND has_non_child_member" + } }, { - "consumed_only": true, "kind": "materialize_rules_engine_predictors", "predictors": [ "uc_maximum_amount", "uc_income_reduction", "is_child_or_qualifying_young_person_for_universal_credit", "is_SP_age" - ] + ], + "consumed_only": true }, { + "kind": "aggregate_person_to_benunit", + "method": "sum", + "consumed_only": true, "aggregates": { "uc_child_count": "is_child_or_qualifying_young_person_for_universal_credit", "universal_credit_reported_amount": "universal_credit_reported" - }, - "consumed_only": true, - "kind": "aggregate_person_to_benunit", - "method": "sum" + } }, { - "categorical_predictors": [ - "region" - ], - "fit": "regime_gated_qrf", "kind": "redraw_spi_reported_uc", - "landing": "eldest_working_age_adult_lowest_person_id", "output": "universal_credit_reported", + "training_rows": "base_frs_channel_not_capital_gains_clone_support_clone_0_screened", + "rows": "spi_channel_screened", + "rewrite_rows": "spi_channel", + "screen": "claimable_screen", "predictors": [ "is_married", "uc_child_band", @@ -2525,22 +2542,21 @@ "claimant_age", "region" ], - "rewrite_rows": "spi_channel", - "rows": "spi_channel_screened", - "screen": "claimable_screen", - "seed": 44, + "categorical_predictors": [ + "region" + ], "target": "universal_credit_reported_amount", - "training_rows": "base_frs_channel_not_capital_gains_clone_support_clone_0_screened", - "weight_mapping": "household_to_benunit" + "weight_mapping": "household_to_benunit", + "fit": "regime_gated_qrf", + "landing": "eldest_working_age_adult_lowest_person_id", + "seed": 44 } ], "outputs": [], "rewrites": [ "universal_credit_reported" ], - "source": "Family Resources Survey 2024-25 reported Universal Credit amounts, conditioned on benefit-unit composition and post-SPI incomes with PolicyEngine-UK eligibility inputs.", - "stage": "uc_reporter_redraw", - "survey": "Family Resources Survey 2024-25" + "notes": "Runs after the person-grain SPI income chain and before UC capital coherence. One temporary engine simulation screens both FRS and SPI benefit units to a positive pre-take-up award using FRS-carried capital AND at least one non-child member (uc_maximum_amount pays qualifying-young-person-only units mechanically), and materializes the UC child and state-pension-age flags; engine-known values are consumed only. A benefit-unit RegimeGatedQRF fitted on the screened base domain draws the screened SPI domain (rows); the rewrite domain (rewrite_rows) is the whole SPI channel, so screen-failing SPI units are zeroed. Each positive amount lands on one deterministic adult claimant; base-FRS rows remain byte-unchanged; an empty screened SPI domain refuses." }, { "stage": "uc_capital_coherence", diff --git a/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml b/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml index 81c973a05..bd70eb0ab 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml +++ b/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml @@ -640,7 +640,11 @@ stages: survey: Family Resources Survey 2024-25 source: Sourced UK take-up contract rates and identity-keyed deterministic draws. grain: person - artifacts: [] + artifacts: + - role: stochastic_contract + resource: take_up_contract.json + kind: public_aggregate_reference + format: json operations: - kind: assign_binary_from_rate output: would_claim_marriage_allowance @@ -659,12 +663,19 @@ stages: - kind: assign_uniform_draw output: attends_private_school_random_draw seed: 0 + - kind: assign_period_constant + output: tax_free_childcare_spend_routed_share + contract_key: tax_free_childcare_spend_routed_share + period_source: build_year + dtype: float64 outputs: - would_claim_marriage_allowance - would_claim_scp - attends_private_school_random_draw + - tax_free_childcare_spend_routed_share nonnegative_outputs: - attends_private_school_random_draw + - tax_free_childcare_spend_routed_share notes: Identity-keyed seed 0 streams replace the incumbent sequential take-up seed 100; higher_earner_tie_break is intentionally not produced. - stage: frs_household_draws survey: Family Resources Survey 2024-25 diff --git a/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json b/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json index 16c3365f4..18e3bac54 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json +++ b/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json @@ -215,7 +215,7 @@ ] }, "expectation": "column_differs", - "magnitude_evidence": "The incumbent's state-education column is degenerate and the spine's is not, which makes this a defect fix on the incumbent side rather than a method preference. Measured on the ETB services stage's own cleaned donor frame \u2014 SN 8856, year 2023, complete cases on the thirteen-column services subset, 4,199 rows, weighted by hhold_adj_weight \u2014 dfe_education_spending has a donor share of 0.2794 weighted (0.2546 unweighted, which reproduces the E6 acceptance receipt's figure exactly) and a donor population mean of GBP 3,461 per household. The incumbent carries 14 nonzero households out of 52,846, a share of 0.000265 and a population mean of GBP 2 per household; the spine carries 11,934, a share of 0.2258 and GBP 3,111, or 0.90x the donor. bus_subsidy_spending moves the same way: donor share 0.5255 weighted and GBP 87 per household, against incumbent 0.3167 and GBP 113 (1.30x) and ours 0.5554 and GBP 89 (1.02x). The spine is closer on both the share and the level of both columns. This resolves the ETB weight-basis question that was previously recorded as blocking these rows: the stage's convention is the household grossing weight, and the verdict holds on either basis.", + "magnitude_evidence": "The incumbent's state-education column is degenerate and the spine's is not, which makes this a defect fix on the incumbent side rather than a method preference. Measured on the ETB services stage's own cleaned donor frame — SN 8856, year 2023, complete cases on the thirteen-column services subset, 4,199 rows, weighted by hhold_adj_weight — dfe_education_spending has a donor share of 0.2794 weighted (0.2546 unweighted, which reproduces the E6 acceptance receipt's figure exactly) and a donor population mean of GBP 3,461 per household. The incumbent carries 14 nonzero households out of 52,846, a share of 0.000265 and a population mean of GBP 2 per household; the spine carries 11,934, a share of 0.2258 and GBP 3,111, or 0.90x the donor. bus_subsidy_spending moves the same way: donor share 0.5255 weighted and GBP 87 per household, against incumbent 0.3167 and GBP 113 (1.30x) and ours 0.5554 and GBP 89 (1.02x). The spine is closer on both the share and the level of both columns. This resolves the ETB weight-basis question that was previously recorded as blocking these rows: the stage's convention is the household grossing weight, and the verdict holds on either basis.", "evidence": "experiments/686-uk-spine-comparison-ledger.md#etb--the-weight-basis-question-is-closed", "adjudicator": "juaristi22", "adjudicated_on": "2026-08-24", @@ -252,7 +252,7 @@ ] }, "expectation": "column_differs", - "magnitude_evidence": "Carries forward the E5 adjudication of 2026-08-19 \u2014 that the wealth stage is not required to reproduce the incumbent's inflated totals \u2014 now scoped to the five household columns that actually diverge beyond the band, and re-measured against WAS Round 8 on the stage's own cleaning of the pinned tab (15,128 rows, weighted by R8xshhwgt). The spine is closer than the incumbent on all five survey-weighted donor shares: savings donor 0.6072 against incumbent 0.6620 and ours 0.6107; other_residential_property_value donor 0.0363 against 0.0763 and 0.0367; property_wealth donor 0.6433 against 0.7081 and 0.6607; main_residence_value donor 0.6236 against 0.6747 and 0.6356; corporate_wealth donor 0.7629 against 0.8222 and 0.7792. The level evidence behind the original adjudication reproduces and is the more dramatic surface: population mean per household runs 5.66x the donor for the incumbent's savings against 1.97x for ours, and 6.12x against 1.26x for other residential property. main_residence_value is the one column where the incumbent's level is closer, at 1.02x against our 0.88x. Note that the unweighted donor shares tell the opposite story on incidence, because WAS oversamples wealth-holders by design; the weighted basis is the population one and is the basis quoted here throughout.", + "magnitude_evidence": "Carries forward the E5 adjudication of 2026-08-19 — that the wealth stage is not required to reproduce the incumbent's inflated totals — now scoped to the five household columns that actually diverge beyond the band, and re-measured against WAS Round 8 on the stage's own cleaning of the pinned tab (15,128 rows, weighted by R8xshhwgt). The spine is closer than the incumbent on all five survey-weighted donor shares: savings donor 0.6072 against incumbent 0.6620 and ours 0.6107; other_residential_property_value donor 0.0363 against 0.0763 and 0.0367; property_wealth donor 0.6433 against 0.7081 and 0.6607; main_residence_value donor 0.6236 against 0.6747 and 0.6356; corporate_wealth donor 0.7629 against 0.8222 and 0.7792. The level evidence behind the original adjudication reproduces and is the more dramatic surface: population mean per household runs 5.66x the donor for the incumbent's savings against 1.97x for ours, and 6.12x against 1.26x for other residential property. main_residence_value is the one column where the incumbent's level is closer, at 1.02x against our 0.88x. Note that the unweighted donor shares tell the opposite story on incidence, because WAS oversamples wealth-holders by design; the weighted basis is the population one and is the basis quoted here throughout.", "evidence": "experiments/686-uk-spine-comparison-ledger.md#e5--wealth--signed-carried-forward", "adjudicator": "juaristi22", "adjudicated_on": "2026-08-24", @@ -300,7 +300,7 @@ ] }, "expectation": "column_differs", - "magnitude_evidence": "Scoped apart from the benchmarked wealth columns because it has no donor benchmark to quote: the column is a fold of two WAS aggregates (total loans less total loans excluding Student Loans Company debt) and is a person-entity column where the wealth columns beside it are household-entity, so no like-for-like donor share exists on the stage's cleaned frame. The observed divergence is +0.0296 on the unweighted share, incumbent 0.0197 against ours 0.0493 \u2014 the spine places student debt on about two and a half times as many carriers. Signed under the standing E5 adjudication as part of the same correlated-rank draw, with the absence of a benchmark stated rather than papered over; if the wealth stage is revisited, this is the column whose direction is unevidenced.", + "magnitude_evidence": "Scoped apart from the benchmarked wealth columns because it has no donor benchmark to quote: the column is a fold of two WAS aggregates (total loans less total loans excluding Student Loans Company debt) and is a person-entity column where the wealth columns beside it are household-entity, so no like-for-like donor share exists on the stage's cleaned frame. The observed divergence is +0.0296 on the unweighted share, incumbent 0.0197 against ours 0.0493 — the spine places student debt on about two and a half times as many carriers. Signed under the standing E5 adjudication as part of the same correlated-rank draw, with the absence of a benchmark stated rather than papered over; if the wealth stage is revisited, this is the column whose direction is unevidenced.", "evidence": "experiments/686-uk-spine-comparison-ledger.md#e5--wealth--signed-carried-forward", "adjudicator": "juaristi22", "adjudicated_on": "2026-08-24", @@ -484,6 +484,31 @@ } } }, + { + "id": "tfc-routed-share-net-new-column", + "class": "net_new_column", + "scope": { + "surface": "nonzero_shares", + "columns": [ + "tax_free_childcare_spend_routed_share" + ], + "entities": [ + "person" + ] + }, + "expectation": "column_missing_in_reference", + "magnitude_evidence": "The spine persists the HMRC-derived financial-year account-activity proxy as a constant person-level input. The pinned enhanced-FRS reference predates this column, so the difference is structural. Licensed L2 (2026-09-05, receipts Part C): the column is present for every person at the 2024-04-01 contract value 0.593 (nonzero share 1.0) and policyengine-uk 2.94.0 reads it back; against the L1 engine-only twin the benunit and time_period tables are byte-equal, no cash, weight or FRS-carried column moves, and the 38 imputed household surfaces re-draw through the engine net-income predictors of 1 414 TFC households (column totals within +/-0.9%).", + "evidence": "experiments/834-childcare-tfc-receipts.md#part-c--column-twin-l2-release-round-trip-l3-re-fit-l5-composition-l4", + "adjudicator": "juaristi22", + "adjudicated_on": "2026-09-05", + "quantitative": { + "structural": { + "expected_columns": [ + "tax_free_childcare_spend_routed_share" + ] + } + } + }, { "id": "uc-reported-capital-net-new-column", "class": "net_new_column", diff --git a/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json b/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json index a48ce8ec0..875e5de82 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json +++ b/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json @@ -103,7 +103,7 @@ "source": { "source": "FRS empirical fit and HMRC Tax-Free Childcare statistics, June 2025 release", "agency": "HMRC", - "citation": "The 2015 value is the incumbent offline FRS fit; the 2024 value reflects HMRC 2024-25 TFC spending and annual unique children reached.", + "citation": "The 2024 value was a manual bump fitted on Enhanced FRS 2022-23 before the pipeline moved to FRS 2024-25; one scalar cannot hit caseload and spending when the award is wrong.", "url": "https://www.gov.uk/government/statistics/tax-free-childcare-statistics-june-2025", "status": "fitted_offline" }, @@ -161,7 +161,7 @@ "source": { "source": "FRS empirical fit", "agency": "PolicyEngine", - "citation": "Incumbent offline FRS childcare take-up fit.", + "citation": "Incumbent offline FRS childcare take-up fit. DfE's published 74.8% figure is not transferred directly because its denominator is not comparable to the model's eligibility base.", "status": "fitted_offline" }, "fitting_receipt": { @@ -265,6 +265,32 @@ "url": "https://www.gov.uk/government/statistics/monthly-property-transactions-completed-in-the-uk-with-value-40000-or-above", "status": "sourced_administrative_derived" } + }, + { + "key": "tax_free_childcare_spend_routed_share", + "output": "tax_free_childcare_spend_routed_share", + "entity": "person", + "values": { + "2017-04-01": 0.359, + "2018-04-01": 0.489, + "2019-04-01": 0.542, + "2020-04-01": 0.471, + "2021-04-01": 0.575, + "2022-04-01": 0.584, + "2023-04-01": 0.589, + "2024-04-01": 0.593, + "2025-04-01": 0.582 + }, + "source": { + "source": "HMRC Tax-Free Childcare statistics, March 2026, Table 2 (children with used accounts, monthly and annual-unique)", + "agency": "HMRC", + "status": "sourced_administrative_derived", + "url": "https://www.gov.uk/government/statistics/tax-free-childcare-statistics-march-2026", + "chronicle_package_id": "hmrc-tax-free-childcare-march-2026", + "ods_sha256": "c2a8e82a7d1e6c85cbe119ffe0a51e692fac3e5014a37f845484dee710e7a29d", + "derivation": "sum(monthly children with used accounts) / annual-unique children / 12, per HMRC financial year; quality report defines a used account", + "citation": "A calibration adjustment, not a measured routed-expenditure share: an account-active-duration proxy assuming uniform spend through the year and full routing in active months; HMRC warns payment dates need not be care dates. Assigned as the published mean, no invented distribution. Denominator is the whole year; the engine defines the share over the eligible period, and the two coincide while tax_free_childcare_eligible_declaration_periods is 0 or 4. HMRC's used-account definition changed from April 2025 and applies to annual figures from FY2024-25." + } } ], "continuous": [ @@ -278,15 +304,14 @@ "lower": 0, "upper": 30, "source": { - "source": "FRS empirical fit", + "source": "FRS empirical fit, frozen by microcosm#834 adjudication", "agency": "PolicyEngine", - "citation": "Incumbent offline childcare usage fit, clipped to [0, 30] hours.", - "status": "fitted_offline" - }, - "fitting_receipt": { - "source": "incumbent UK pipeline @ ebf733c", - "seed": 42, - "status": "frozen parity value" + "citation": "Incumbent offline childcare usage fit, clipped to [0, 30] hours. Frozen because it is underidentified without an independent extended-spending observation; replacing it needs evidence on hours actually used.", + "status": "frozen_by_adjudication", + "freeze": { + "decision": "Hold 15.019 / 4.972 / 0 / 30 fixed while fitting only four take-up rates", + "followup": "microcosm#834" + } } } ] 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 4ea45d035..637fbc254 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,13 +1,13 @@ { "source_fact_feed": ".codex-work/consumer_facts_uk.jsonl", "target_period": 2025, - "candidate_count": 417, - "contract_target_count": 189, - "active_reference_count": 408, + "candidate_count": 430, + "contract_target_count": 202, + "active_reference_count": 415, "status_counts": { - "active": 408, + "active": 415, "no_fact_at_or_before_period": 7, - "signed_excluded": 2 + "signed_excluded": 8 }, "geography_pins": { "obr.income_tax": { @@ -765,9 +765,62 @@ "dwp.uc.households": { "geography_level": "country", "geography_id": "K03000001" + }, + "hmrc.tfc.government_top_up": { + "geography_level": "country", + "geography_id": "K02000001" + }, + "hmrc.tfc.children_with_used_accounts": { + "geography_level": "country", + "geography_id": "K02000001" + }, + "dfe.funded_childcare.working_parent_children_2_to_4": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dfe.funded_childcare.early_learning_2_year_olds": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dfe.funded_childcare.universal_only_children": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_fare_receipts.england": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_net_support.england": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_fare_receipts.london": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_net_support.london": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_fare_receipts.england_outside_london": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_net_support.england_outside_london": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_fare_receipts.uk": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dft.bus_net_support.uk": { + "geography_level": "country", + "geography_id": "E92000001" } }, "genuine_sum_residue": [ + "dfe.funded_childcare.working_parent_children_2_to_4", "obr.esa", "ons.population.age_0_9_by_region", "ons.population.age_10_19_by_region", @@ -2650,6 +2703,21 @@ "name": "dwp.uc.households", "from": "2025-12", "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" } ], "targets": { @@ -7740,6 +7808,183 @@ "resolved_fact_key": "ledger_aggregate_fact_v2_3270b0f656838ddd01b1ac5f" } ] + }, + "hmrc.tfc.government_top_up": { + "status": "active", + "candidates": [ + { + "name": "hmrc.tfc.government_top_up", + "status": "active", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, + "resolved_period": 2025, + "resolved_value": 599800000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_988715985f9e98bbb332e83d" + } + ] + }, + "hmrc.tfc.children_with_used_accounts": { + "status": "active", + "candidates": [ + { + "name": "hmrc.tfc.children_with_used_accounts", + "status": "active", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 1151515.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_7aa1c663447037b35ea1c999" + } + ] + }, + "dfe.funded_childcare.working_parent_children_2_to_4": { + "status": "active", + "candidates": [ + { + "name": "dfe.funded_childcare.working_parent_children_2_to_4", + "status": "active", + "matched_fact_count_overall": 11, + "matched_fact_count_at_or_before_period": 9, + "resolved_period": 2025, + "resolved_value": 621482.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_a57a0c03ac43b62dde04fabd" + } + ] + }, + "dfe.funded_childcare.early_learning_2_year_olds": { + "status": "active", + "candidates": [ + { + "name": "dfe.funded_childcare.early_learning_2_year_olds", + "status": "active", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 11, + "resolved_period": 2025, + "resolved_value": 95031.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_a2b30af28303935159ba0edc" + } + ] + }, + "dfe.funded_childcare.universal_only_children": { + "status": "active", + "candidates": [ + { + "name": "dfe.funded_childcare.universal_only_children", + "status": "active", + "matched_fact_count_overall": 770, + "matched_fact_count_at_or_before_period": 686, + "resolved_period": 2025, + "resolved_value": 396965.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_471573def13ebdc67ff1f40a" + } + ] + }, + "dft.bus_fare_receipts.england": { + "status": "active", + "candidates": [ + { + "name": "dft.bus_fare_receipts.england", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 3417388656.43538, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_2ece7c3d283b6de43b30389f" + } + ] + }, + "dft.bus_net_support.england": { + "status": "active", + "candidates": [ + { + "name": "dft.bus_net_support.england", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 3024904320.8399997, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_a12dfcdc0662c8a5e48bf003" + } + ] + }, + "dft.bus_fare_receipts.london": { + "status": "signed_excluded", + "candidates": [ + { + "name": "dft.bus_fare_receipts.london", + "status": "signed_excluded", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "signed_rationale": "Region target held until the UK target compiler has a declared region roster and cross-grain leg; tracked by #790." + } + ] + }, + "dft.bus_net_support.london": { + "status": "signed_excluded", + "candidates": [ + { + "name": "dft.bus_net_support.london", + "status": "signed_excluded", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "signed_rationale": "Region target held until the UK target compiler has a declared region roster and cross-grain leg; tracked by #790." + } + ] + }, + "dft.bus_fare_receipts.england_outside_london": { + "status": "signed_excluded", + "candidates": [ + { + "name": "dft.bus_fare_receipts.england_outside_london", + "status": "signed_excluded", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "signed_rationale": "Chronicle stamps this row at statistical_scope; Microcosm has no declared statistical-scope pin and must not bind the England total accidentally." + } + ] + }, + "dft.bus_net_support.england_outside_london": { + "status": "signed_excluded", + "candidates": [ + { + "name": "dft.bus_net_support.england_outside_london", + "status": "signed_excluded", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "signed_rationale": "Chronicle stamps this row at statistical_scope; Microcosm has no declared statistical-scope pin and must not bind the England total accidentally." + } + ] + }, + "dft.bus_fare_receipts.uk": { + "status": "signed_excluded", + "candidates": [ + { + "name": "dft.bus_fare_receipts.uk", + "status": "signed_excluded", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "signed_rationale": "BUS05i publishes no UK total and Microcosm declares no method to construct one." + } + ] + }, + "dft.bus_net_support.uk": { + "status": "signed_excluded", + "candidates": [ + { + "name": "dft.bus_net_support.uk", + "status": "signed_excluded", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "signed_rationale": "BUS05i publishes no UK total and Microcosm declares no method to construct one." + } + ] } }, "fanout_family_outcomes": [ diff --git a/packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json new file mode 100644 index 000000000..50b8eb618 --- /dev/null +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json @@ -0,0 +1,69 @@ +{ + "schema_version": 1, + "exclusions": [ + { + "target_id": "hmrc.spi.property_income.amount_by_total_income_band", + "reason_id": "property_income_undercount_adjustment_missing", + "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 policyengine-uk-data PR #311 / issue policyengine-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.", + "tracking": "policyengine-uk-data#230", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + }, + { + "target_id": "ons.population.scotland_households_3plus_children", + "reason_id": "no_household_composition_fact", + "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.", + "tracking": "microcosm#736", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + }, + { + "target_id": "dft.bus_fare_receipts.london", + "reason_id": "region_pin_unsupported", + "rationale": "Region target held until the UK target compiler has a declared region roster and cross-grain leg; tracked by #790.", + "tracking": "microcosm#790", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + }, + { + "target_id": "dft.bus_net_support.london", + "reason_id": "region_pin_unsupported", + "rationale": "Region target held until the UK target compiler has a declared region roster and cross-grain leg; tracked by #790.", + "tracking": "microcosm#790", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + }, + { + "target_id": "dft.bus_fare_receipts.england_outside_london", + "reason_id": "statistical_scope_unsupported", + "rationale": "Chronicle stamps this row at statistical_scope; Microcosm has no declared statistical-scope pin and must not bind the England total accidentally.", + "tracking": "microcosm#789", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + }, + { + "target_id": "dft.bus_net_support.england_outside_london", + "reason_id": "statistical_scope_unsupported", + "rationale": "Chronicle stamps this row at statistical_scope; Microcosm has no declared statistical-scope pin and must not bind the England total accidentally.", + "tracking": "microcosm#789", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + }, + { + "target_id": "dft.bus_fare_receipts.uk", + "reason_id": "no_publisher_uk_total", + "rationale": "BUS05i publishes no UK total and Microcosm declares no method to construct one.", + "tracking": "microcosm#789", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + }, + { + "target_id": "dft.bus_net_support.uk", + "reason_id": "no_publisher_uk_total", + "rationale": "BUS05i publishes no UK total and Microcosm declares no method to construct one.", + "tracking": "microcosm#789", + "approved_by": "juaristi22", + "approved_on": "2026-09-05" + } + ] +} 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 b256be72d..128542f6b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -4,6 +4,7 @@ "allowed_value_operations": [ "identity", "sum", + "difference", "calendar_year_average", "latest_plateau", "count_x_mean" @@ -14,6 +15,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.income_tax", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -32,6 +34,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.ni_total", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -50,6 +53,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.ni_employee", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -68,6 +72,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.ni_employer", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -86,6 +91,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.ni_self_employed", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -104,6 +110,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.vat", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -122,6 +129,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.fuel_duties", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -140,6 +148,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.capital_gains_tax", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -158,6 +167,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.sdlt", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -176,6 +186,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.attendance_allowance", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -194,6 +205,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.carers_allowance", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -212,6 +224,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.child_benefit", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -248,6 +261,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.incapacity_benefits", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -267,6 +281,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.housing_benefit", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -285,6 +300,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.jobseekers_allowance", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -303,6 +319,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.pension_credit", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -321,6 +338,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.dla_and_pip", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -339,6 +357,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.state_pension", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -357,6 +376,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.statutory_maternity_pay", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -375,6 +395,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.tv_licence_fee", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -393,6 +414,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.universal_credit_in_cap", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -411,6 +433,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.universal_credit_outside_cap", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -429,6 +452,7 @@ "ledger_selector": { "source_name": "obr", "source_concept": "obr.winter_fuel_payment", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001" }, @@ -622,6 +646,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -645,6 +670,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -668,6 +694,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -691,6 +718,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -714,6 +742,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -737,6 +766,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -760,6 +790,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -783,6 +814,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -806,6 +838,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -829,6 +862,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -852,6 +886,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -875,6 +910,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -898,6 +934,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1220,6 +1257,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1243,6 +1281,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1266,6 +1305,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1289,6 +1329,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1312,6 +1353,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1335,6 +1377,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1358,6 +1401,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1381,6 +1425,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1404,6 +1449,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1427,6 +1473,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1450,6 +1497,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1473,6 +1521,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1496,6 +1545,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1818,6 +1868,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1841,6 +1892,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1864,6 +1916,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1887,6 +1940,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1910,6 +1964,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1933,6 +1988,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1956,6 +2012,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -1979,6 +2036,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2002,6 +2060,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2025,6 +2084,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2048,6 +2108,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2071,6 +2132,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2094,6 +2156,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2715,6 +2778,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2738,6 +2802,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2761,6 +2826,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2784,6 +2850,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2807,6 +2874,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2830,6 +2898,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2853,6 +2922,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2876,6 +2946,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2899,6 +2970,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2922,6 +2994,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2945,6 +3018,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2968,6 +3042,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -2991,6 +3066,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3313,6 +3389,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3336,6 +3413,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3359,6 +3437,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3382,6 +3461,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3405,6 +3485,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3428,6 +3509,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3451,6 +3533,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3474,6 +3557,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3497,6 +3581,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3520,6 +3605,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3543,6 +3629,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3566,6 +3653,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3589,6 +3677,7 @@ "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", "geography_level": "country", "geography_id": "K02000001", "dimension_values": { @@ -3931,6 +4020,7 @@ "source_name": "hmrc", "source_concept": "hmrc.cgt_gains_total", "groupby_dimension": "hmrc.cgt_table1_line", + "entity_name": "tax_unit", "geography_level": "country", "geography_id": "K02000001" }, @@ -7207,7 +7297,7 @@ "geography_level": "country", "geography_id": "S92000003" }, - "entity": "benunit", + "entity": "household", "measure": "dwp/scotland_uc_households_child_under_1", "family": "dwp_universal_credit", "period": 2025, @@ -7606,6 +7696,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7644,6 +7735,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7682,6 +7774,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7720,6 +7813,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7758,6 +7852,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7796,6 +7891,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7834,6 +7930,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7872,6 +7969,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7910,6 +8008,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 10, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7945,6 +8044,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -7980,6 +8080,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8015,6 +8116,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8050,6 +8152,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8085,6 +8188,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8120,6 +8224,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8155,6 +8260,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8190,6 +8296,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8225,6 +8332,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8260,6 +8368,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8295,6 +8404,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8330,6 +8440,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8365,6 +8476,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8400,6 +8512,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8435,6 +8548,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8470,6 +8584,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8505,6 +8620,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8540,6 +8656,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8571,6 +8688,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 1, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8606,6 +8724,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8641,6 +8760,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8676,6 +8796,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8711,6 +8832,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8746,6 +8868,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8781,6 +8904,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8816,6 +8940,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8851,6 +8976,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8886,6 +9012,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8921,6 +9048,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8956,6 +9084,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -8991,6 +9120,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9026,6 +9156,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9061,6 +9192,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9096,6 +9228,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9131,6 +9264,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9166,6 +9300,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9201,6 +9336,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 5, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9232,6 +9368,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 1, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9276,6 +9413,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 16, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9305,6 +9443,7 @@ "measure_kind": "prepared_column" }, "value_operation": "sum", + "expected_member_count": 1, "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -9868,6 +10007,7 @@ "dimension_values": { "social_security_line": "scottish_child_payment" }, + "entity_name": "person", "geography_level": "country", "geography_id": "S92000003" }, @@ -9886,6 +10026,7 @@ "ledger_selector": { "source_name": "ons", "source_concept": "ons.ukea_haxv", + "entity_name": "household", "geography_level": "country", "geography_id": "K02000001" }, @@ -9922,6 +10063,7 @@ "ledger_selector": { "source_name": "ons", "source_concept": "ons.e44r", + "entity_name": "institutional_sector", "geography_level": "country", "geography_id": "K02000001" }, @@ -9941,6 +10083,7 @@ "ledger_selector": { "source_name": "ons", "source_concept": "ons.e44n", + "entity_name": "institutional_sector", "geography_level": "country", "geography_id": "K02000001" }, @@ -9960,6 +10103,7 @@ "ledger_selector": { "source_name": "ons", "source_concept": "ons.e43b", + "entity_name": "institutional_sector", "geography_level": "country", "geography_id": "K02000001" }, @@ -9982,6 +10126,7 @@ "source_measure_id": [ "total_higher_education" ], + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10005,6 +10150,7 @@ "source_measure_id": [ "plan_1" ], + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10029,6 +10175,7 @@ "plan_2_full_time", "plan_2_part_time" ], + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10053,6 +10200,7 @@ "plan_3_postgraduate_masters", "plan_3_postgraduate_doctoral" ], + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10077,6 +10225,7 @@ "plan_5_full_time", "plan_5_part_time" ], + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10208,6 +10357,7 @@ "ledger_selector": { "source_name": "slc", "source_concept": "slc.maintenance_loan_amount_paid", + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10252,6 +10402,7 @@ "dimension_values": { "student_support_product": "parents_learning_allowance" }, + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10296,6 +10447,7 @@ "dimension_values": { "student_support_product": "adult_dependants_grant" }, + "entity_name": "person", "geography_level": "country", "geography_id": "E92000001" }, @@ -10331,6 +10483,192 @@ "value_operation": "calendar_year_average", "uprating_from_period": "2025-12", "uprating_to_period": 2025 + }, + { + "name": "hmrc.tfc.government_top_up", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.tax_free_childcare.government_top_up_gbp_million", + "entity_name": "government", + "period_type": "fiscal_year", + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "person", + "measure": "hmrc/tfc/government_top_up", + "family": "hmrc_tfc", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.tfc.government_top_up", + "measure_kind": "prepared_column", + "observation_basis": "annual_flow" + } + }, + { + "name": "hmrc.tfc.children_with_used_accounts", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.tax_free_childcare.children_with_used_accounts_total", + "entity_name": "person", + "period_type": "fiscal_year", + "dimension_values": { + "definition_regime": "payment_and_open_at_reference_date" + }, + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "person", + "measure": "hmrc/tfc/children_with_used_accounts", + "family": "hmrc_tfc", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.tfc.children_with_used_accounts", + "measure_kind": "prepared_column", + "observation_basis": "annual_unique_count" + } + }, + { + "name": "dfe.funded_childcare.working_parent_children_2_to_4", + "ledger_selector": { + "source_name": "dfe", + "source_concept": "dfe.number_of_registered_children", + "source_measure_id": "registered_children_count", + "entity_name": "person", + "dimension_values": { + "entitlement_type": "Working parents", + "age": [ + "2 years", + "3 to 4 years" + ], + "registration_basis": "registered_children", + "provision": "all" + }, + "geography_level": "country", + "geography_id": "E92000001" + }, + "entity": "person", + "measure": "dfe/funded_childcare/working_parent_children_2_to_4", + "family": "dfe_funded_childcare", + "period": 2025, + "metadata": { + "contract_target_id": "dfe.funded_childcare.working_parent_children_2_to_4", + "measure_kind": "prepared_column", + "observation_basis": "january_stock" + }, + "value_operation": "sum", + "expected_member_count": 2, + "uprating_from_period": "2025-01", + "uprating_to_period": 2025 + }, + { + "name": "dfe.funded_childcare.early_learning_2_year_olds", + "ledger_selector": { + "source_name": "dfe", + "source_concept": "dfe.number_of_registered_children", + "source_measure_id": "registered_children_count", + "entity_name": "person", + "dimension_values": { + "entitlement_type": "Early learning for 2-year-olds", + "age": "2 years", + "registration_basis": "registered_children" + }, + "geography_level": "country", + "geography_id": "E92000001" + }, + "entity": "person", + "measure": "dfe/funded_childcare/early_learning_2_year_olds", + "family": "dfe_funded_childcare", + "period": 2025, + "metadata": { + "contract_target_id": "dfe.funded_childcare.early_learning_2_year_olds", + "measure_kind": "prepared_column", + "observation_basis": "january_stock" + }, + "uprating_from_period": "2025-01", + "uprating_to_period": 2025 + }, + { + "name": "dfe.funded_childcare.universal_only_children", + "ledger_selector": { + "source_name": "dfe", + "entity_name": "person", + "geography_level": "country", + "geography_id": "E92000001" + }, + "entity": "person", + "measure": "dfe/funded_childcare/universal_only_children", + "family": "dfe_funded_childcare", + "period": 2025, + "metadata": { + "contract_target_id": "dfe.funded_childcare.universal_only_children", + "measure_kind": "prepared_column", + "observation_basis": "january_stock" + }, + "value_operation": "difference", + "value_operands": [ + { + "role": "minuend", + "source_concept": "dfe.number_of_registered_children_nursery", + "source_measure_id": "registered_children_nursery_count", + "dimension_values": { + "entitlement_type": "Universal", + "age": "Total" + } + }, + { + "role": "subtrahend", + "source_concept": "dfe.number_of_registered_children", + "source_measure_id": "registered_children_count", + "dimension_values": { + "entitlement_type": "Working parents", + "age": "3 to 4 years" + } + } + ], + "uprating_from_period": "2025-01", + "uprating_to_period": 2025 + }, + { + "name": "dft.bus_fare_receipts.england", + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_passenger_fare_receipts", + "layout_groupby_value_id": "england", + "entity_name": "institutional_sector", + "period_type": "fiscal_year", + "geography_level": "country", + "geography_id": "E92000001" + }, + "entity": "household", + "measure": "dft/bus_fare_receipts/england", + "family": "dft_local_bus", + "period": 2025, + "metadata": { + "contract_target_id": "dft.bus_fare_receipts.england", + "measure_kind": "prepared_column", + "observation_basis": "fiscal_year_flow" + } + }, + { + "name": "dft.bus_net_support.england", + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_total_estimated_net_support", + "layout_groupby_value_id": "england", + "entity_name": "institutional_sector", + "period_type": "fiscal_year", + "geography_level": "country", + "geography_id": "E92000001" + }, + "entity": "household", + "measure": "dft/bus_net_support/england", + "family": "dft_local_bus", + "period": 2025, + "metadata": { + "contract_target_id": "dft.bus_net_support.england", + "measure_kind": "prepared_column", + "observation_basis": "fiscal_year_flow" + } } ] } 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 b13fd09e0..33ba0cdd6 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 @@ -201,7 +201,7 @@ "purpose": "Preserve service-consumption totals and distribution.", "verdict_basis": "Route to WS-E/F (#148), using landed DfT facts; never allocate the national total over local areas." }, - "reason": "BUS05 subsidy/fare totals and the NTS0705 quintile IPF belong to WS-E/F (#148).", + "reason": "BUS05 subsidy/fare totals are consumed by the #789 rows; the NTS0705 quintile gradient remains routed to WS-E/F (#148).", "status": "routed" }, { 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 90c9739c9..1fb59edc3 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 @@ -4,7 +4,8 @@ "description": "UK population calibration contract: value-free national and local-geography target declarations over Chronicle facts. Selection contracts live in Microcosm per the chronicle#166 ruling (2026-08-13): Chronicle is a facts-only layer; Microcosm owns which facts are targets and how they bind to the model. This resource consolidates the former national and local-geography contracts into one population contract while preserving both target levels and their provenance accounting blocks. Observed values resolve from hash-pinned Chronicle consumer-facts artifacts at build time.", "allowed_value_operations": [ "identity", - "sum" + "sum", + "difference" ], "resolution_defaults": { "base_period_policy": "latest_not_after_build_base_period", @@ -678,8 +679,21 @@ "hmrc.salary_sacrifice.it_relief_basic_rate": "New declaration backed by chronicle#139 salary-sacrifice facts; the incumbent source CSV is still 410-Gone at 12a1e028 and its rows are silently suppressed by the bare-except drop in build_loss_matrix.py:376-394.", "hmrc.salary_sacrifice.it_relief_higher_rate": "New declaration backed by chronicle#139 salary-sacrifice facts; the incumbent source CSV is still 410-Gone at 12a1e028 and its rows are silently suppressed by the bare-except drop in build_loss_matrix.py:376-394.", "hmrc.salary_sacrifice.it_relief_additional_rate": "New declaration backed by chronicle#139 salary-sacrifice facts; the incumbent source CSV is still 410-Gone at 12a1e028 and its rows are silently suppressed by the bare-except drop in build_loss_matrix.py:376-394.", - "ons.population.female_90_plus": "Mar\u00eda ruling 2026-08-21: split the incumbent terminal sex bands into uniform five-year 85_89 bands plus 90_plus tails. The incumbent six-year 85_90 terminal rows leave ages 91+ unconstrained; Microcosm keeps the uniform five-year bands and constrains the tail. The 85_89-vs-85_90 value gap is the single-age-90 share and is a signed semantic difference.", - "ons.population.male_90_plus": "Mar\u00eda ruling 2026-08-21: split the incumbent terminal sex bands into uniform five-year 85_89 bands plus 90_plus tails. The incumbent six-year 85_90 terminal rows leave ages 91+ unconstrained; Microcosm keeps the uniform five-year bands and constrains the tail. The 85_89-vs-85_90 value gap is the single-age-90 share and is a signed semantic difference." + "ons.population.female_90_plus": "María ruling 2026-08-21: split the incumbent terminal sex bands into uniform five-year 85_89 bands plus 90_plus tails. The incumbent six-year 85_90 terminal rows leave ages 91+ unconstrained; Microcosm keeps the uniform five-year bands and constrains the tail. The 85_89-vs-85_90 value gap is the single-age-90 share and is a signed semantic difference.", + "ons.population.male_90_plus": "María ruling 2026-08-21: split the incumbent terminal sex bands into uniform five-year 85_89 bands plus 90_plus tails. The incumbent six-year 85_90 terminal rows leave ages 91+ unconstrained; Microcosm keeps the uniform five-year bands and constrains the tail. The 85_89-vs-85_90 value gap is the single-age-90 share and is a signed semantic difference.", + "hmrc.tfc.government_top_up": "Post-freeze fact family, no uk-data metric.", + "hmrc.tfc.children_with_used_accounts": "Post-freeze fact family, no uk-data metric.", + "dfe.funded_childcare.working_parent_children_2_to_4": "Post-freeze fact family, no uk-data metric.", + "dfe.funded_childcare.early_learning_2_year_olds": "Post-freeze fact family, no uk-data metric.", + "dfe.funded_childcare.universal_only_children": "Post-freeze fact family, no uk-data metric.", + "dft.bus_fare_receipts.england": "#789 consumer target.", + "dft.bus_net_support.england": "#789 consumer target.", + "dft.bus_fare_receipts.london": "#789 consumer target.", + "dft.bus_net_support.london": "#789 consumer target.", + "dft.bus_fare_receipts.england_outside_london": "#789 consumer target.", + "dft.bus_net_support.england_outside_london": "#789 consumer target.", + "dft.bus_fare_receipts.uk": "#789 consumer target.", + "dft.bus_net_support.uk": "#789 consumer target." }, "suppressed_ancestors": { "hmrc/salary_sacrifice_it_relief_basic_rate": { @@ -709,7 +723,7 @@ "salary_sacrifice_obr_near_equivalents": "The contract separately maps OBR near-equivalents obr/salary_sacrifice_employee_ni_relief and obr/salary_sacrifice_employer_ni_relief onto hmrc.salary_sacrifice.nics_relief_employee and hmrc.salary_sacrifice.nics_relief_employer.", "two_child_limit_year_surface": "Chronicle's 15 dwp/uc/two_child_limit/* facts are the April-2025 publication (period month 2025-04) and are the only TCL facts; there are no 2026 Ledger facts. At 12a1e028, the incumbent pins the same published numbers at {2026}, so at calibration year 2025 Ledger activates all 15 TCL targets while the incumbent drops them from the 652-row union to the 637-row effective surface; the 2026 effective surface remains 652. The same 12a1e028 refresh adds the new incumbent dwp/uc/households row. Fixture B treats the 15 TCL rows as enumerated ledger-side additions.", "geography_level_order_canonicalization": "The 9 voa.council_tax_stock.* rows use country, region order to match the rest of the contract; consumers use membership only.", - "ons_terminal_sex_band_split": "Mar\u00eda ruling 2026-08-21: split the incumbent terminal sex bands into uniform five-year 85_89 bands plus 90_plus tails. The incumbent six-year 85_90 terminal rows leave ages 91+ unconstrained; Microcosm keeps the uniform five-year bands and constrains the tail. The 85_89-vs-85_90 value gap is the single-age-90 share and is a signed semantic difference." + "ons_terminal_sex_band_split": "María ruling 2026-08-21: split the incumbent terminal sex bands into uniform five-year 85_89 bands plus 90_plus tails. The incumbent six-year 85_90 terminal rows leave ages 91+ unconstrained; Microcosm keeps the uniform five-year bands and constrains the tail. The 85_89-vs-85_90 value gap is the single-age-90 share and is a signed semantic difference." }, "scope_target_ids": [ "obr.income_tax", @@ -900,7 +914,20 @@ "slc.support.parents_learning_allowance_spend", "slc.support.adult_dependants_grant_recipients", "slc.support.adult_dependants_grant_spend", - "dwp.uc.households" + "dwp.uc.households", + "hmrc.tfc.government_top_up", + "hmrc.tfc.children_with_used_accounts", + "dfe.funded_childcare.working_parent_children_2_to_4", + "dfe.funded_childcare.early_learning_2_year_olds", + "dfe.funded_childcare.universal_only_children", + "dft.bus_fare_receipts.england", + "dft.bus_net_support.england", + "dft.bus_fare_receipts.london", + "dft.bus_net_support.london", + "dft.bus_fare_receipts.england_outside_london", + "dft.bus_net_support.england_outside_london", + "dft.bus_fare_receipts.uk", + "dft.bus_net_support.uk" ] }, "profile_parity": { @@ -1358,7 +1385,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.income_tax" + "source_concept": "obr.income_tax", + "entity_name": "person" } }, { @@ -1378,7 +1406,7 @@ "value_variable": "total_national_insurance", "from_entity": "person", "map_to": "household", - "notes": "The EFO line is total NICs receipts; binds total_national_insurance (class 1 employee + employer + classes 2-4). The prior ni_employee-only binding was the uk-data defect carried for parity \u2014 final estimate bit-identical to obr.ni_employee \u2014 fixed under the microcosm#757 audit partition (2026-08-26). Nearly redundant with the three separately-calibrated component lines by construction; kept so the published total binds honestly. Residual gap is Class 1A/1B on benefits in kind, which the model does not carry." + "notes": "The EFO line is total NICs receipts; binds total_national_insurance (class 1 employee + employer + classes 2-4). The prior ni_employee-only binding was the uk-data defect carried for parity — final estimate bit-identical to obr.ni_employee — fixed under the microcosm#757 audit partition (2026-08-26). Nearly redundant with the three separately-calibrated component lines by construction; kept so the published total binds honestly. Residual gap is Class 1A/1B on benefits in kind, which the model does not carry." }, "axiom": { "metric_name": "obr/ni", @@ -1389,7 +1417,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.ni_total" + "source_concept": "obr.ni_total", + "entity_name": "person" } }, { @@ -1419,7 +1448,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.ni_employee" + "source_concept": "obr.ni_employee", + "entity_name": "person" } }, { @@ -1449,7 +1479,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.ni_employer" + "source_concept": "obr.ni_employer", + "entity_name": "person" } }, { @@ -1479,7 +1510,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.ni_self_employed" + "source_concept": "obr.ni_self_employed", + "entity_name": "person" } }, { @@ -1506,7 +1538,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.vat" + "source_concept": "obr.vat", + "entity_name": "person" } }, { @@ -1533,7 +1566,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.fuel_duties" + "source_concept": "obr.fuel_duties", + "entity_name": "person" } }, { @@ -1563,7 +1597,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.capital_gains_tax" + "source_concept": "obr.capital_gains_tax", + "entity_name": "person" } }, { @@ -1590,7 +1625,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.sdlt" + "source_concept": "obr.sdlt", + "entity_name": "person" } }, { @@ -1620,7 +1656,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.attendance_allowance" + "source_concept": "obr.attendance_allowance", + "entity_name": "person" } }, { @@ -1650,7 +1687,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.carers_allowance" + "source_concept": "obr.carers_allowance", + "entity_name": "person" } }, { @@ -1680,7 +1718,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.child_benefit" + "source_concept": "obr.child_benefit", + "entity_name": "person" } }, { @@ -1855,7 +1894,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.domestic_rates" + "source_concept": "obr.domestic_rates", + "entity_name": "person" } }, { @@ -1884,7 +1924,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.incapacity_benefits" + "source_concept": "obr.incapacity_benefits", + "entity_name": "person" } }, { @@ -1914,7 +1955,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.housing_benefit" + "source_concept": "obr.housing_benefit", + "entity_name": "person" } }, { @@ -1944,7 +1986,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.jobseekers_allowance" + "source_concept": "obr.jobseekers_allowance", + "entity_name": "person" } }, { @@ -1974,7 +2017,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.pension_credit" + "source_concept": "obr.pension_credit", + "entity_name": "person" } }, { @@ -2005,7 +2049,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.dla_and_pip" + "source_concept": "obr.dla_and_pip", + "entity_name": "person" } }, { @@ -2035,7 +2080,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.state_pension" + "source_concept": "obr.state_pension", + "entity_name": "person" } }, { @@ -2065,7 +2111,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.statutory_maternity_pay" + "source_concept": "obr.statutory_maternity_pay", + "entity_name": "person" } }, { @@ -2092,7 +2139,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.tv_licence_fee" + "source_concept": "obr.tv_licence_fee", + "entity_name": "person" } }, { @@ -2137,7 +2185,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.universal_credit_in_cap" + "source_concept": "obr.universal_credit_in_cap", + "entity_name": "person" } }, { @@ -2182,7 +2231,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.universal_credit_outside_cap" + "source_concept": "obr.universal_credit_outside_cap", + "entity_name": "person" } }, { @@ -2209,7 +2259,8 @@ "assertion_policy": "allow_source_projection", "ledger_selector": { "source_name": "obr", - "source_concept": "obr.winter_fuel_payment" + "source_concept": "obr.winter_fuel_payment", + "entity_name": "person" } }, { @@ -2598,7 +2649,8 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.spi_employment_income_amount", - "groupby_dimension": "hmrc.total_income_band" + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" } }, { @@ -2677,7 +2729,8 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.spi_self_employment_income_amount", - "groupby_dimension": "hmrc.total_income_band" + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" } }, { @@ -2756,7 +2809,8 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.spi_dividend_income_amount", - "groupby_dimension": "hmrc.total_income_band" + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" } }, { @@ -2835,7 +2889,8 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.spi_property_income_amount", - "groupby_dimension": "hmrc.total_income_band" + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" } }, { @@ -2914,7 +2969,8 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.spi_private_pension_income_amount", - "groupby_dimension": "hmrc.total_income_band" + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" } }, { @@ -2993,7 +3049,8 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.spi_state_pension_amount", - "groupby_dimension": "hmrc.total_income_band" + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" } }, { @@ -3123,7 +3180,8 @@ "ledger_selector": { "source_name": "hmrc", "source_concept": "hmrc.cgt_gains_total", - "groupby_dimension": "hmrc.cgt_table1_line" + "groupby_dimension": "hmrc.cgt_table1_line", + "entity_name": "tax_unit" } }, { @@ -4153,8 +4211,8 @@ "country" ], "measurement": { - "entity": "benunit", - "concept": "uk.benefit_unit.count", + "entity": "household", + "concept": "uk.household.count", "filters": [ { "concept": "uk.geography.region", @@ -4175,9 +4233,8 @@ "bindings": { "policyengine": { "metric_name": "dwp/scotland_uc_households_child_under_1", - "value_variable": "benunit_count", - "from_entity": "benunit", - "filters": [ + "reduce": "any", + "household_conditions": [ { "variable": "region", "operator": "==", @@ -4185,21 +4242,26 @@ }, { "variable": "universal_credit", + "entity": "benunit", + "reduce": "any", "operator": ">", "value": 0 }, { - "variable": "youngest_child_age", + "variable": "age", + "entity": "person", + "reduce": "any_child_under", "operator": "<", "value": 1 } ], - "notes": "Prepared benefit-unit count for Scottish UC units whose youngest child is under 1. The Chronicle monthly series is averaged over April-December 2025, matching the rest of the DWP Universal Credit family." + "value_variable": "household_count", + "notes": "Scottish UC households with a child under 1 (compute/benefits.py:24-30). Household grain kept: the calibration provider has no categorical household-to-benefit-unit broadcast (a benefit-unit row cannot filter on region), so the #813-style re-bind is not available for a geography-filtered row; the Chronicle series is calendar-year averaged over April-December 2025 like the rest of the family." }, "axiom": { "metric_name": "dwp/scotland_uc_households_child_under_1", "status": "pending", - "value_rule": "uk.benefit_unit.count" + "value_rule": "uk.household.count" } }, "ledger_selector": { @@ -4859,6 +4921,7 @@ }, { "target_id": "ons.population.uk_total", + "value_operation": "sum", "family": "ons_population", "geography_levels": [ "country" @@ -8626,7 +8689,7 @@ } ], "value_variable": "household_count", - "notes": "ONS Table 7 'one family only: couple, no children' is the household being exactly one childless couple and nobody else; with the childless-couple benunit present, person count == 2 is equivalent to the one-family restriction. Without it the binding counted every household *containing* such a couple \u2014 a 1.84m overlap with the couple-non-dependent-children and multi-family categories (microcosm#757 audit partition, 2026-08-26)." + "notes": "ONS Table 7 'one family only: couple, no children' is the household being exactly one childless couple and nobody else; with the childless-couple benunit present, person count == 2 is equivalent to the one-family restriction. Without it the binding counted every household *containing* such a couple — a 1.84m overlap with the couple-non-dependent-children and multi-family categories (microcosm#757 audit partition, 2026-08-26)." }, "axiom": { "metric_name": "ons/couple_no_children_households", @@ -9750,7 +9813,8 @@ "source_concept": "scotgov.social_security_assistance_spending", "dimension_values": { "social_security_line": "scottish_child_payment" - } + }, + "entity_name": "person" } }, { @@ -9780,7 +9844,8 @@ }, "ledger_selector": { "source_name": "ons", - "source_concept": "ons.ukea_haxv" + "source_concept": "ons.ukea_haxv", + "entity_name": "household" } }, { @@ -9848,7 +9913,8 @@ }, "ledger_selector": { "source_name": "ons", - "source_concept": "ons.e44r" + "source_concept": "ons.e44r", + "entity_name": "institutional_sector" } }, { @@ -9875,7 +9941,8 @@ }, "ledger_selector": { "source_name": "ons", - "source_concept": "ons.e44n" + "source_concept": "ons.e44n", + "entity_name": "institutional_sector" } }, { @@ -9902,7 +9969,8 @@ }, "ledger_selector": { "source_name": "ons", - "source_concept": "ons.e43b" + "source_concept": "ons.e43b", + "entity_name": "institutional_sector" } }, { @@ -9932,7 +10000,8 @@ }, "ledger_selector": { "source_name": "slc", - "source_concept": "slc.student_loan_net_repayments_total" + "source_concept": "slc.student_loan_net_repayments_total", + "entity_name": "person" } }, { @@ -9979,7 +10048,8 @@ "groupby_dimension": "slc.repayment_plan", "source_measure_id": [ "total_higher_education" - ] + ], + "entity_name": "person" } }, { @@ -10034,7 +10104,8 @@ "groupby_dimension": "slc.repayment_plan", "source_measure_id": [ "plan_1" - ] + ], + "entity_name": "person" } }, { @@ -10092,7 +10163,8 @@ "source_measure_id": [ "plan_2_full_time", "plan_2_part_time" - ] + ], + "entity_name": "person" } }, { @@ -10150,7 +10222,8 @@ "source_measure_id": [ "plan_3_postgraduate_masters", "plan_3_postgraduate_doctoral" - ] + ], + "entity_name": "person" } }, { @@ -10208,7 +10281,8 @@ "source_measure_id": [ "plan_5_full_time", "plan_5_part_time" - ] + ], + "entity_name": "person" } }, { @@ -10474,7 +10548,8 @@ }, "ledger_selector": { "source_name": "slc", - "source_concept": "slc.maintenance_loan_amount_paid" + "source_concept": "slc.maintenance_loan_amount_paid", + "entity_name": "person" } }, { @@ -10552,7 +10627,8 @@ "source_concept": "slc.targeted_support_amount_awarded", "dimension_values": { "student_support_product": "parents_learning_allowance" - } + }, + "entity_name": "person" } }, { @@ -10630,7 +10706,8 @@ "source_concept": "slc.targeted_support_amount_awarded", "dimension_values": { "student_support_product": "adult_dependants_grant" - } + }, + "entity_name": "person" } }, { @@ -10678,300 +10755,885 @@ } }, { - "target_id": "hmrc.self_employment_income.amount", - "family": "hmrc", + "target_id": "hmrc.tfc.government_top_up", + "family": "hmrc_tfc", "geography_levels": [ - "constituency", - "local_authority" + "country" ], "measurement": { "entity": "person", "map_to": "household", - "concept": "uk.income.self_employment.amount", - "filters": [ - { - "concept": "uk.tax.income_tax", - "operator": ">", - "value": 0 - } - ] + "concept": "uk.tax.tax_free_childcare.amount", + "observation_basis": "annual_flow" }, "bindings": { "policyengine": { - "metric_name": "hmrc/self_employment_income/amount", - "value_variable": "self_employment_income", + "metric_name": "hmrc/tfc/government_top_up", + "value_variable": "tax_free_childcare", "from_entity": "person", - "map_to": "household", - "filters": [ - { - "variable": "income_tax", - "operator": ">", - "value": 0 - } - ] + "map_to": "household" }, "axiom": { - "metric_name": "hmrc/self_employment_income/amount", + "metric_name": "hmrc/tfc/government_top_up", "status": "pending", - "value_rule": "uk.income.self_employment.amount" + "value_rule": "uk.tax.tax_free_childcare.amount" } }, "ledger_selector": { "source_name": "hmrc", - "source_measure_id": [ - "self_employment_income_count", - "self_employment_income_mean" - ], - "record_set_spec_id": [ - "uk.local_geography.spi_income.by_constituency.v1", - "uk.local_geography.spi_income.by_local_authority.v1" - ] - }, - "selector_note": "No Chronicle amount fact exists; count_x_mean consumes the ordered count and mean facts from the same SPI area record-set spec." + "source_concept": "hmrc.tax_free_childcare.government_top_up_gbp_million", + "entity_name": "government", + "period_type": "fiscal_year" + } }, { - "target_id": "hmrc.self_employment_income.count", - "family": "hmrc", + "target_id": "hmrc.tfc.children_with_used_accounts", + "family": "hmrc_tfc", "geography_levels": [ - "constituency", - "local_authority" + "country" ], "measurement": { "entity": "person", "map_to": "household", "concept": "uk.person.count", + "observation_basis": "annual_unique_count", "filters": [ { - "concept": "uk.income.self_employment.amount", - "operator": "!=", - "value": 0 - }, - { - "concept": "uk.tax.income_tax", - "operator": ">", - "value": 0 + "concept": "uk.childcare.is_child_receiving_tax_free_childcare", + "equals": true } ] }, "bindings": { "policyengine": { - "metric_name": "hmrc/self_employment_income/count", + "metric_name": "hmrc/tfc/children_with_used_accounts", "value_variable": "person_count", "from_entity": "person", "map_to": "household", "filters": [ { - "variable": "self_employment_income", - "operator": "!=", - "value": 0 - }, - { - "variable": "income_tax", - "operator": ">", - "value": 0 + "variable": "is_child_receiving_tax_free_childcare", + "equals": true } ] }, "axiom": { - "metric_name": "hmrc/self_employment_income/count", + "metric_name": "hmrc/tfc/children_with_used_accounts", "status": "pending", "value_rule": "uk.person.count" } }, "ledger_selector": { "source_name": "hmrc", - "source_measure_id": "self_employment_income_count", - "record_set_spec_id": [ - "uk.local_geography.spi_income.by_constituency.v1", - "uk.local_geography.spi_income.by_local_authority.v1" - ] + "source_concept": "hmrc.tax_free_childcare.children_with_used_accounts_total", + "entity_name": "person", + "period_type": "fiscal_year", + "dimension_values": { + "definition_regime": "payment_and_open_at_reference_date" + } } }, { - "target_id": "hmrc.employment_income.amount", - "family": "hmrc", + "target_id": "dfe.funded_childcare.working_parent_children_2_to_4", + "family": "dfe_funded_childcare", "geography_levels": [ - "constituency", - "local_authority" + "country" ], "measurement": { "entity": "person", "map_to": "household", - "concept": "uk.income.employment.amount", + "concept": "uk.person.count", + "observation_basis": "january_stock", "filters": [ { - "concept": "uk.tax.income_tax", - "operator": ">", - "value": 0 + "concept": "uk.childcare.is_child_receiving_extended_childcare", + "equals": true + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 2 + }, + { + "concept": "uk.geography.country", + "equals": "ENGLAND" } ] }, "bindings": { "policyengine": { - "metric_name": "hmrc/employment_income/amount", - "value_variable": "employment_income", + "metric_name": "dfe/funded_childcare/working_parent_children_2_to_4", + "value_variable": "person_count", "from_entity": "person", "map_to": "household", "filters": [ { - "variable": "income_tax", - "operator": ">", - "value": 0 + "variable": "is_child_receiving_extended_childcare", + "equals": true + }, + { + "variable": "age", + "operator": ">=", + "value": 2 + }, + { + "variable": "country", + "equals": "ENGLAND" } - ] + ], + "notes": "Caseload only: entitlement spending is not bound because caseload multiplied by full-usage ceilings would double count assumptions." }, "axiom": { - "metric_name": "hmrc/employment_income/amount", + "metric_name": "dfe/funded_childcare/working_parent_children_2_to_4", "status": "pending", - "value_rule": "uk.income.employment.amount" + "value_rule": "uk.person.count" } }, "ledger_selector": { - "source_name": "hmrc", - "source_measure_id": [ - "employment_income_count", - "employment_income_mean" - ], - "record_set_spec_id": [ - "uk.local_geography.spi_income.by_constituency.v1", - "uk.local_geography.spi_income.by_local_authority.v1" - ] - }, - "selector_note": "No Chronicle amount fact exists; count_x_mean consumes the ordered count and mean facts from the same SPI area record-set spec." + "source_name": "dfe", + "source_concept": "dfe.number_of_registered_children", + "source_measure_id": "registered_children_count", + "entity_name": "person", + "dimension_values": { + "entitlement_type": "Working parents", + "age": [ + "2 years", + "3 to 4 years" + ], + "registration_basis": "registered_children", + "provision": "all" + } + } }, { - "target_id": "hmrc.employment_income.count", - "family": "hmrc", + "target_id": "dfe.funded_childcare.early_learning_2_year_olds", + "family": "dfe_funded_childcare", "geography_levels": [ - "constituency", - "local_authority" + "country" ], "measurement": { "entity": "person", "map_to": "household", "concept": "uk.person.count", + "observation_basis": "january_stock", "filters": [ { - "concept": "uk.income.employment.amount", - "operator": "!=", - "value": 0 + "concept": "uk.childcare.is_child_receiving_targeted_childcare", + "equals": true }, { - "concept": "uk.tax.income_tax", - "operator": ">", - "value": 0 + "concept": "uk.geography.country", + "equals": "ENGLAND" } ] }, "bindings": { "policyengine": { - "metric_name": "hmrc/employment_income/count", + "metric_name": "dfe/funded_childcare/early_learning_2_year_olds", "value_variable": "person_count", "from_entity": "person", "map_to": "household", "filters": [ { - "variable": "employment_income", - "operator": "!=", - "value": 0 + "variable": "is_child_receiving_targeted_childcare", + "equals": true }, { - "variable": "income_tax", - "operator": ">", - "value": 0 + "variable": "country", + "equals": "ENGLAND" } - ] + ], + "notes": "Caseload only; the published 74.8% denominator is not transferred into the model take-up rate." }, "axiom": { - "metric_name": "hmrc/employment_income/count", + "metric_name": "dfe/funded_childcare/early_learning_2_year_olds", "status": "pending", "value_rule": "uk.person.count" } }, "ledger_selector": { - "source_name": "hmrc", - "source_measure_id": "employment_income_count", - "record_set_spec_id": [ - "uk.local_geography.spi_income.by_constituency.v1", - "uk.local_geography.spi_income.by_local_authority.v1" - ] + "source_name": "dfe", + "source_concept": "dfe.number_of_registered_children", + "source_measure_id": "registered_children_count", + "entity_name": "person", + "dimension_values": { + "entitlement_type": "Early learning for 2-year-olds", + "age": "2 years", + "registration_basis": "registered_children" + } } }, { - "target_id": "ons.age.0_10", - "family": "ons_population", + "target_id": "dfe.funded_childcare.universal_only_children", + "family": "dfe_funded_childcare", "geography_levels": [ - "constituency", - "local_authority" + "country" + ], + "value_operation": "difference", + "value_operands": [ + { + "role": "minuend", + "source_concept": "dfe.number_of_registered_children_nursery", + "source_measure_id": "registered_children_nursery_count", + "dimension_values": { + "entitlement_type": "Universal", + "age": "Total" + } + }, + { + "role": "subtrahend", + "source_concept": "dfe.number_of_registered_children", + "source_measure_id": "registered_children_count", + "dimension_values": { + "entitlement_type": "Working parents", + "age": "3 to 4 years" + } + } ], "measurement": { "entity": "person", "map_to": "household", "concept": "uk.person.count", + "observation_basis": "january_stock", "filters": [ { - "concept": "uk.demographics.age", - "lower": 0, - "upper": 10 + "concept": "uk.childcare.is_child_receiving_universal_childcare", + "equals": true + }, + { + "concept": "uk.geography.country", + "equals": "ENGLAND" } ] }, "bindings": { "policyengine": { - "metric_name": "age/0_10", + "metric_name": "dfe/funded_childcare/universal_only_children", "value_variable": "person_count", "from_entity": "person", "map_to": "household", "filters": [ { - "variable": "age", - "lower": 0, - "upper": 10 + "variable": "is_child_receiving_universal_childcare", + "equals": true + }, + { + "variable": "country", + "equals": "ENGLAND" } - ] + ], + "notes": "Universal-only caseload is the declared difference between the overlapping published universes; no entitlement spending row is bound." }, "axiom": { - "metric_name": "age/0_10", + "metric_name": "dfe/funded_childcare/universal_only_children", "status": "pending", "value_rule": "uk.person.count" } }, "ledger_selector": { - "source_measure_id": "population", - "record_set_spec_id": "uk.local_geography.population.age_0_10.v1" + "source_name": "dfe", + "entity_name": "person" } }, { - "target_id": "ons.age.10_20", - "family": "ons_population", + "target_id": "dft.bus_fare_receipts.england", + "family": "dft_local_bus", "geography_levels": [ - "constituency", - "local_authority" + "country" ], "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.person.count", + "entity": "household", + "concept": "uk.transport.bus_fare.amount", + "observation_basis": "fiscal_year_flow", "filters": [ { - "concept": "uk.demographics.age", - "lower": 10, - "upper": 20 + "concept": "uk.geography.country", + "equals": "ENGLAND" } ] }, "bindings": { "policyengine": { - "metric_name": "age/10_20", - "value_variable": "person_count", - "from_entity": "person", - "map_to": "household", + "metric_name": "dft/bus_fare_receipts/england", + "value_variable": "bus_fare_spending", "filters": [ { - "variable": "age", - "lower": 10, - "upper": 20 - } + "variable": "country", + "equals": "ENGLAND" + } + ], + "notes": "DfT closing-year label: period 2025 means YE March 2025. BUS05i is consumed; NTS0705a and BUS0415 are not consumed pending #790." + }, + "axiom": { + "metric_name": "dft/bus_fare_receipts/england", + "status": "pending", + "value_rule": "uk.transport.bus_fare.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_passenger_fare_receipts", + "layout_groupby_value_id": "england", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "dft.bus_net_support.england", + "family": "dft_local_bus", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "household", + "concept": "uk.transport.bus_support.amount", + "observation_basis": "fiscal_year_flow", + "filters": [ + { + "concept": "uk.geography.country", + "equals": "ENGLAND" + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dft/bus_net_support/england", + "value_variable": "bus_subsidy_spending", + "filters": [ + { + "variable": "country", + "equals": "ENGLAND" + } + ], + "notes": "DfT closing-year label: period 2025 means YE March 2025. BUS05i is consumed; BUS0415 is not selectable for support." + }, + "axiom": { + "metric_name": "dft/bus_net_support/england", + "status": "pending", + "value_rule": "uk.transport.bus_support.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_total_estimated_net_support", + "layout_groupby_value_id": "england", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "dft.bus_fare_receipts.london", + "family": "dft_local_bus", + "geography_levels": [ + "region" + ], + "measurement": { + "entity": "household", + "concept": "uk.transport.bus_fare.amount", + "observation_basis": "fiscal_year_flow" + }, + "bindings": { + "policyengine": { + "metric_name": "dft/bus_fare_receipts/london", + "value_variable": "bus_fare_spending", + "filters": [ + { + "variable": "region", + "operator": "==", + "value": "LONDON" + } + ] + }, + "axiom": { + "metric_name": "dft/bus_fare_receipts/london", + "status": "pending", + "value_rule": "uk.transport.bus_fare.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_passenger_fare_receipts", + "layout_groupby_value_id": "london", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "dft.bus_net_support.london", + "family": "dft_local_bus", + "geography_levels": [ + "region" + ], + "measurement": { + "entity": "household", + "concept": "uk.transport.bus_support.amount", + "observation_basis": "fiscal_year_flow" + }, + "bindings": { + "policyengine": { + "metric_name": "dft/bus_net_support/london", + "value_variable": "bus_subsidy_spending", + "filters": [ + { + "variable": "region", + "operator": "==", + "value": "LONDON" + } + ] + }, + "axiom": { + "metric_name": "dft/bus_net_support/london", + "status": "pending", + "value_rule": "uk.transport.bus_support.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_total_estimated_net_support", + "layout_groupby_value_id": "london", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "dft.bus_fare_receipts.england_outside_london", + "family": "dft_local_bus", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "household", + "concept": "uk.transport.bus_fare.amount", + "observation_basis": "fiscal_year_flow" + }, + "bindings": { + "policyengine": { + "metric_name": "dft/bus_fare_receipts/england_outside_london", + "value_variable": "bus_fare_spending", + "filters": [ + { + "variable": "country", + "operator": "==", + "value": "ENGLAND" + }, + { + "variable": "region", + "operator": "!=", + "value": "LONDON" + } + ] + }, + "axiom": { + "metric_name": "dft/bus_fare_receipts/england_outside_london", + "status": "pending", + "value_rule": "uk.transport.bus_fare.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_passenger_fare_receipts", + "layout_groupby_value_id": "england_outside_london", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "dft.bus_net_support.england_outside_london", + "family": "dft_local_bus", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "household", + "concept": "uk.transport.bus_support.amount", + "observation_basis": "fiscal_year_flow" + }, + "bindings": { + "policyengine": { + "metric_name": "dft/bus_net_support/england_outside_london", + "value_variable": "bus_subsidy_spending", + "filters": [ + { + "variable": "country", + "operator": "==", + "value": "ENGLAND" + }, + { + "variable": "region", + "operator": "!=", + "value": "LONDON" + } + ] + }, + "axiom": { + "metric_name": "dft/bus_net_support/england_outside_london", + "status": "pending", + "value_rule": "uk.transport.bus_support.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_total_estimated_net_support", + "layout_groupby_value_id": "england_outside_london", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "dft.bus_fare_receipts.uk", + "family": "dft_local_bus", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "household", + "concept": "uk.transport.bus_fare.amount", + "observation_basis": "fiscal_year_flow" + }, + "bindings": { + "policyengine": { + "metric_name": "dft/bus_fare_receipts/uk", + "value_variable": "bus_fare_spending" + }, + "axiom": { + "metric_name": "dft/bus_fare_receipts/uk", + "status": "pending", + "value_rule": "uk.transport.bus_fare.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_passenger_fare_receipts", + "layout_groupby_value_id": "uk", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "dft.bus_net_support.uk", + "family": "dft_local_bus", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "household", + "concept": "uk.transport.bus_support.amount", + "observation_basis": "fiscal_year_flow" + }, + "bindings": { + "policyengine": { + "metric_name": "dft/bus_net_support/uk", + "value_variable": "bus_subsidy_spending" + }, + "axiom": { + "metric_name": "dft/bus_net_support/uk", + "status": "pending", + "value_rule": "uk.transport.bus_support.amount" + } + }, + "ledger_selector": { + "source_name": "dft", + "source_concept": "dft.local_bus_total_estimated_net_support", + "layout_groupby_value_id": "uk", + "entity_name": "institutional_sector", + "period_type": "fiscal_year" + } + }, + { + "target_id": "hmrc.self_employment_income.amount", + "family": "hmrc", + "geography_levels": [ + "constituency", + "local_authority" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.income.self_employment.amount", + "filters": [ + { + "concept": "uk.tax.income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/self_employment_income/amount", + "value_variable": "self_employment_income", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "axiom": { + "metric_name": "hmrc/self_employment_income/amount", + "status": "pending", + "value_rule": "uk.income.self_employment.amount" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_measure_id": [ + "self_employment_income_count", + "self_employment_income_mean" + ], + "record_set_spec_id": [ + "uk.local_geography.spi_income.by_constituency.v1", + "uk.local_geography.spi_income.by_local_authority.v1" + ] + }, + "selector_note": "No Chronicle amount fact exists; count_x_mean consumes the ordered count and mean facts from the same SPI area record-set spec." + }, + { + "target_id": "hmrc.self_employment_income.count", + "family": "hmrc", + "geography_levels": [ + "constituency", + "local_authority" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.income.self_employment.amount", + "operator": "!=", + "value": 0 + }, + { + "concept": "uk.tax.income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/self_employment_income/count", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "self_employment_income", + "operator": "!=", + "value": 0 + }, + { + "variable": "income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "axiom": { + "metric_name": "hmrc/self_employment_income/count", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_measure_id": "self_employment_income_count", + "record_set_spec_id": [ + "uk.local_geography.spi_income.by_constituency.v1", + "uk.local_geography.spi_income.by_local_authority.v1" + ] + } + }, + { + "target_id": "hmrc.employment_income.amount", + "family": "hmrc", + "geography_levels": [ + "constituency", + "local_authority" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.income.employment.amount", + "filters": [ + { + "concept": "uk.tax.income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/employment_income/amount", + "value_variable": "employment_income", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "axiom": { + "metric_name": "hmrc/employment_income/amount", + "status": "pending", + "value_rule": "uk.income.employment.amount" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_measure_id": [ + "employment_income_count", + "employment_income_mean" + ], + "record_set_spec_id": [ + "uk.local_geography.spi_income.by_constituency.v1", + "uk.local_geography.spi_income.by_local_authority.v1" + ] + }, + "selector_note": "No Chronicle amount fact exists; count_x_mean consumes the ordered count and mean facts from the same SPI area record-set spec." + }, + { + "target_id": "hmrc.employment_income.count", + "family": "hmrc", + "geography_levels": [ + "constituency", + "local_authority" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.income.employment.amount", + "operator": "!=", + "value": 0 + }, + { + "concept": "uk.tax.income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/employment_income/count", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "employment_income", + "operator": "!=", + "value": 0 + }, + { + "variable": "income_tax", + "operator": ">", + "value": 0 + } + ] + }, + "axiom": { + "metric_name": "hmrc/employment_income/count", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_measure_id": "employment_income_count", + "record_set_spec_id": [ + "uk.local_geography.spi_income.by_constituency.v1", + "uk.local_geography.spi_income.by_local_authority.v1" + ] + } + }, + { + "target_id": "ons.age.0_10", + "family": "ons_population", + "geography_levels": [ + "constituency", + "local_authority" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.demographics.age", + "lower": 0, + "upper": 10 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "age/0_10", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "age", + "lower": 0, + "upper": 10 + } + ] + }, + "axiom": { + "metric_name": "age/0_10", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_measure_id": "population", + "record_set_spec_id": "uk.local_geography.population.age_0_10.v1" + } + }, + { + "target_id": "ons.age.10_20", + "family": "ons_population", + "geography_levels": [ + "constituency", + "local_authority" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.demographics.age", + "lower": 10, + "upper": 20 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "age/10_20", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "age", + "lower": 10, + "upper": 20 + } ] }, "axiom": { @@ -11733,19 +12395,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_a", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "A"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "A" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_a", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "A"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "A" + } + ] }, - "axiom": {"metric_name": "council_tax/band_a", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_a", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", @@ -11757,19 +12435,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_b", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "B"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "B" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_b", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "B"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "B" + } + ] }, - "axiom": {"metric_name": "council_tax/band_b", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_b", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", @@ -11781,19 +12475,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_c", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "C"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "C" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_c", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "C"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "C" + } + ] }, - "axiom": {"metric_name": "council_tax/band_c", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_c", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", @@ -11805,19 +12515,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_d", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "D"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "D" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_d", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "D"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "D" + } + ] }, - "axiom": {"metric_name": "council_tax/band_d", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_d", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", @@ -11829,19 +12555,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_e", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "E"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "E" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_e", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "E"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "E" + } + ] }, - "axiom": {"metric_name": "council_tax/band_e", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_e", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", @@ -11853,19 +12595,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_f", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "F"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "F" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_f", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "F"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "F" + } + ] }, - "axiom": {"metric_name": "council_tax/band_f", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_f", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", @@ -11877,19 +12635,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_g", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "G"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "G" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_g", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "G"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "G" + } + ] }, - "axiom": {"metric_name": "council_tax/band_g", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_g", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", @@ -11901,19 +12675,35 @@ { "target_id": "voa.council_tax_stock.by_area.band_h", "family": "council_tax_stock", - "geography_levels": ["local_authority"], + "geography_levels": [ + "local_authority" + ], "measurement": { "entity": "household", "concept": "uk.household.count", - "filters": [{"concept": "uk.housing.council_tax_band", "equals": "H"}] + "filters": [ + { + "concept": "uk.housing.council_tax_band", + "equals": "H" + } + ] }, "bindings": { "policyengine": { "metric_name": "council_tax/band_h", "value_variable": "household_count", - "filters": [{"variable": "council_tax_band", "equals": "H"}] + "filters": [ + { + "variable": "council_tax_band", + "equals": "H" + } + ] }, - "axiom": {"metric_name": "council_tax/band_h", "status": "pending", "value_rule": "uk.household.count"} + "axiom": { + "metric_name": "council_tax/band_h", + "status": "pending", + "value_rule": "uk.household.count" + } }, "ledger_selector": { "source_name": "voa", 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 131d27660..96d22d57a 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 @@ -442,7 +442,7 @@ def _fence(origin: str, purpose: str, verdict_basis: str) -> dict[str, str]: "concern_id": "dataset_anchor_bus_subsidy_and_fares", "status": "routed", "classification": "imputation_anchor", - "reason": "BUS05 subsidy/fare totals and the NTS0705 quintile IPF belong to WS-E/F (#148).", + "reason": "BUS05 subsidy/fare totals are consumed by the #789 rows; the NTS0705 quintile gradient remains routed to WS-E/F (#148).", "evidence": "uk-data datasets/imputations/services/services.py:33 and datasets/imputations/consumption.py:790,830; Chronicle#200/#202.", "fence": _fence( "uk-data post-imputation-rescaled bus subsidy and fares, including London share and quintile rates.", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/diagnostics.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/diagnostics.py index 186e820cb..313d3e48d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/diagnostics.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/diagnostics.py @@ -832,6 +832,11 @@ def uk_calibration_diagnostics_payload( "weights": weights, "zero_weight_rows_by_stratum": strata, "target_pass_rates_by_geography_level": pass_rates, + "target_observation_basis": { + spec.to_target().row_name: str(spec.metadata["observation_basis"]) + for spec in registry.specs + if spec.metadata.get("observation_basis") + }, } if local_area_support is not None: uk_diagnostics["weakest_families"] = uk_weakest_families(target_rows) diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_person_draws.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_person_draws.py index 5e88e2467..9c80c14aa 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_person_draws.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_person_draws.py @@ -25,9 +25,17 @@ "would_claim_marriage_allowance", "would_claim_scp", "attends_private_school_random_draw", + "tax_free_childcare_spend_routed_share", ) -FRS_PERSON_DRAW_NONNEGATIVE_OUTPUT_COLUMNS = ("attends_private_school_random_draw",) -UK_PERSON_DRAW_DECLARED_SEEDS = {output: 0 for output in FRS_PERSON_DRAW_OUTPUT_COLUMNS} +FRS_PERSON_DRAW_NONNEGATIVE_OUTPUT_COLUMNS = ( + "attends_private_school_random_draw", + "tax_free_childcare_spend_routed_share", +) +UK_PERSON_DRAW_DECLARED_SEEDS = { + output: 0 + for output in FRS_PERSON_DRAW_OUTPUT_COLUMNS + if output != "tax_free_childcare_spend_routed_share" +} @dataclass(frozen=True) @@ -46,6 +54,13 @@ def output_columns() -> tuple[str, ...]: def add_frs_person_draws(frame: Frame, *, contract: UKTakeUpContract) -> Frame: + period = uk_time_period(frame) + if int(str(period).split("-", maxsplit=1)[0]) != contract.build_year: + raise ValueError( + "frs_person_draws assign_period_constant requires the frame time " + f"period {period!r} to equal contract build_year {contract.build_year}." + ) + _require_tax_free_childcare_routed_share_variable() person = frame.table("person").copy() derived = derive_frs_person_draws(person, contract=contract) for column in FRS_PERSON_DRAW_OUTPUT_COLUMNS: @@ -54,7 +69,7 @@ def add_frs_person_draws(frame: Frame, *, contract: UKTakeUpContract) -> Frame: person=person, benunit=frame.table("benunit").copy(), household=frame.table("household").copy(), - time_period=uk_time_period(frame), + time_period=period, weight_kind=uk_household_weight_kind(frame), household_weights=frame.weights_for("household").values, mass_log=frame.mass_log, @@ -81,9 +96,32 @@ def derive_frs_person_draws( values["attends_private_school_random_draw"] = _draws( ids, "attends_private_school_random_draw" ) + entry = contract.entry("tax_free_childcare_spend_routed_share") + if entry.raw.get("entity") != "person": + raise ValueError( + "tax_free_childcare_spend_routed_share contract entry must declare " + "entity='person'." + ) + values["tax_free_childcare_spend_routed_share"] = contract.rate( + "tax_free_childcare_spend_routed_share", contract.build_year + ) return values +def _require_tax_free_childcare_routed_share_variable() -> None: + """Fail before export when an installed UK engine cannot consume the input.""" + + try: + import policyengine_uk + except ImportError: + return + variable = "tax_free_childcare_spend_routed_share" + if variable not in policyengine_uk.CountryTaxBenefitSystem().variables: + raise ValueError( + f"Required variable {variable!r} is not defined in policyengine-uk." + ) + + def _draws(ids: np.ndarray, output: str) -> np.ndarray: return stable_identity_uniforms( ids, seed=UK_PERSON_DRAW_DECLARED_SEEDS[output], salt=output diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py index 62f316bd0..6e68a56c6 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py @@ -425,6 +425,7 @@ def _cells( _Cell("person", "would_claim_marriage_allowance", "bool"), _Cell("person", "would_claim_scp", "bool"), _Cell("person", "attends_private_school_random_draw", "float64"), + _Cell("person", "tax_free_childcare_spend_routed_share", "float64"), ), "frs_household_draws": _cells( "household", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py index eb1bd87ca..682533863 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py @@ -29,6 +29,7 @@ "frozen_by_adjudication", } ) +UK_ALLOWED_RATE_ENTITIES = frozenset({"person", "benunit", "household"}) @dataclass(frozen=True) @@ -167,6 +168,12 @@ def _entries(values: object, *, section: str) -> tuple[UKRateEntry, ...]: if key in seen: raise ValueError(f"duplicate UK take-up contract key {key!r}.") seen.add(key) + entity = item.get("entity") + if entity not in UK_ALLOWED_RATE_ENTITIES: + raise ValueError( + f"UK take-up contract {key!r} has invalid entity {entity!r}; " + f"expected one of {sorted(UK_ALLOWED_RATE_ENTITIES)}." + ) entry_values = item.get("values") if not isinstance(entry_values, Mapping) or not entry_values: raise ValueError(f"UK take-up contract {key!r} requires values.") diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/terminal_gates.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/terminal_gates.py index cb086f903..80b2faec9 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/terminal_gates.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/terminal_gates.py @@ -216,6 +216,7 @@ def __post_init__(self) -> None: "person.sic_industry_division", "person.student_loan_balance", "person.student_loan_plan", + "person.tax_free_childcare_spend_routed_share", "person.would_claim_marriage_allowance", "person.would_claim_scp", ) diff --git a/packages/microcosm-build/tests/fixtures/uk_bus05i_fy2025.json b/packages/microcosm-build/tests/fixtures/uk_bus05i_fy2025.json new file mode 100644 index 000000000..b5365cf4b --- /dev/null +++ b/packages/microcosm-build/tests/fixtures/uk_bus05i_fy2025.json @@ -0,0 +1,12 @@ +{ + "source_package": "dft-bus05i-revenue-support-2025", + "source_sha256": "a65ad97d70982bc572a8ff7415182c1b350166fc2e485e37f5678f3dbaa12fa5", + "rows": [ + {"aggregate_fact_key": "ledger.aggregate_fact.v2:2ece7c3d283b6de43b30389f", "source_concept": "dft.local_bus_passenger_fare_receipts", "groupby_value_id": "england", "period": {"type": "fiscal_year", "value": 2025}, "unit": "gbp", "value": 3417388656.43538}, + {"aggregate_fact_key": "ledger.aggregate_fact.v2:33611c64d2048fe660501802", "source_concept": "dft.local_bus_passenger_fare_receipts", "groupby_value_id": "london", "period": {"type": "fiscal_year", "value": 2025}, "unit": "gbp", "value": 1347434943.01459}, + {"aggregate_fact_key": "ledger.aggregate_fact.v2:465d300355c85e7c498397dd", "source_concept": "dft.local_bus_passenger_fare_receipts", "groupby_value_id": "england_outside_london", "period": {"type": "fiscal_year", "value": 2025}, "unit": "gbp", "value": 2069953713.42079}, + {"aggregate_fact_key": "ledger.aggregate_fact.v2:a12dfcdc0662c8a5e48bf003", "source_concept": "dft.local_bus_total_estimated_net_support", "groupby_value_id": "england", "period": {"type": "fiscal_year", "value": 2025}, "unit": "gbp", "value": 3024904320.8399997}, + {"aggregate_fact_key": "ledger.aggregate_fact.v2:d8e40cee2fc723b719ff4680", "source_concept": "dft.local_bus_total_estimated_net_support", "groupby_value_id": "london", "period": {"type": "fiscal_year", "value": 2025}, "unit": "gbp", "value": 1130214000}, + {"aggregate_fact_key": "ledger.aggregate_fact.v2:7ab0c5007c9a6ad38aaa1468", "source_concept": "dft.local_bus_total_estimated_net_support", "groupby_value_id": "england_outside_london", "period": {"type": "fiscal_year", "value": 2025}, "unit": "gbp", "value": 1894690320.84} + ] +} diff --git a/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl b/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl index da610a263..98b4b5108 100644 --- a/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl +++ b/packages/microcosm-build/tests/fixtures/uk_target_reference_feed_rows.jsonl @@ -1,4 +1,4 @@ -{"aggregate_fact_key": "ledger.aggregate_fact.v2:1b082e386beee3c6900e9dfa", "aggregation": {"method": "sum"}, "assertion": "observation", "concept_alignment": {"authority": "hmrc", "canonical_concept": "hmrc.cgt_gains_total", "concept_alignment_key": "ledger.concept_alignment.v2:cd804afc02f283a70c7df5d5", "evidence_notes": "CGT statistics 2025 release, Table 1, year of disposal 2023 to 2024; counts in thousands, amounts GBP million. Provisional per publication notes.", "evidence_url": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "relation": "source_label", "source_concept": "hmrc.cgt_gains_total"}, "dimension_set_key": "ledger.dimension_set.v2:44136fa355b3678a1146ad16", "dimensions": {}, "entity": {"name": "person", "role": "taxpayer"}, "geography": {"id": "K02000001", "level": "country", "vintage": "current"}, "label": "United Kingdom 2023 tax year sum hmrc cgt gains total for person [hmrc Capital Gains Tax statistics Table 1: taxpayer numbers, gains and tax liabilities by year of disposal Table_1_2025.ods cgt_statistics_2025]", "layout": {"groupby_dimension": "hmrc.cgt_table1_line", "groupby_ordinal": 0, "groupby_value_id": "ty2023", "groupby_value_label": "Year of disposal 2023 to 2024", "measure_id": "total_gains", "measure_label": "Chargeable gains, total", "measure_ordinal": 7, "record_set_id": "hmrc.cgt_statistics_2025.table1.ty2023", "record_set_spec_hash": "b27f186424c62509e6a5e134", "record_set_spec_id": "hmrc.cgt_statistics_2025.table1.ty2023.v1", "source_column_id": "total_gains", "source_row_id": "ty2023", "table_record_kind": "total"}, "legacy_fact_key": "ledger.fact.v1:f492a811d673243b30a72d14", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:e35da0de9817851d700b614f", "ledger.source_cell.v1:70d71881a68af5ec3e5388b2"], "source_record_id": "hmrc.cgt_statistics_2025.table1.ty2023.ty2023.total_gains", "source_row_keys": []}, "observed_measure": {"source_concept": "hmrc.cgt_gains_total", "source_measure_id": "total_gains", "source_name": "hmrc", "source_table": "Capital Gains Tax statistics Table 1: taxpayer numbers, gains and tax liabilities by year of disposal", "unit": "gbp"}, "observed_measure_key": "ledger.observed_measure.v2:76f6824292f0e8bd3edb801f", "period": {"type": "tax_year", "value": 2023}, "provenance_class": "administrative", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:6e1a2ddc3a44d696e736dc6b", "source": {"extracted_at": "2026-08-06", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/hmrc/hmrc-cgt-statistics-2025/2025/95c1bb1548483cb0ed0090e820a1fba129d725ade418cf64e5f85793655e92a1/Table_1_2025.ods", "raw_r2_uri": "r2://ledger-raw/raw/hmrc/hmrc-cgt-statistics-2025/2025/95c1bb1548483cb0ed0090e820a1fba129d725ade418cf64e5f85793655e92a1/Table_1_2025.ods", "source_file": "Table_1_2025.ods", "source_name": "hmrc", "source_sha256": "95c1bb1548483cb0ed0090e820a1fba129d725ade418cf64e5f85793655e92a1", "source_size_bytes": 10002, "source_table": "Capital Gains Tax statistics Table 1: taxpayer numbers, gains and tax liabilities by year of disposal", "url": "https://assets.publishing.service.gov.uk/media/6878ac497ea209168636386e/Table_1_2025_Taxpayer_numbers_gains_and_tax_liabilities.ods", "vintage": "cgt_statistics_2025"}, "source_release_key": "ledger.source_release.v2:a6b82e1799ccd4ba57608ccd", "source_series_key": "ledger.source_series.v2:de2bf2a36f1647b20877cc1a", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:31e69e018123fa4b604582eb", "universe_constraints": {"domain": "capital_gains_tax"}, "value": 65937000000, "value_type": "integer"} +{"aggregate_fact_key": "ledger.aggregate_fact.v2:1b082e386beee3c6900e9dfa", "aggregation": {"method": "sum"}, "assertion": "observation", "concept_alignment": {"authority": "hmrc", "canonical_concept": "hmrc.cgt_gains_total", "concept_alignment_key": "ledger.concept_alignment.v2:cd804afc02f283a70c7df5d5", "evidence_notes": "CGT statistics 2025 release, Table 1, year of disposal 2023 to 2024; counts in thousands, amounts GBP million. Provisional per publication notes.", "evidence_url": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "relation": "source_label", "source_concept": "hmrc.cgt_gains_total"}, "dimension_set_key": "ledger.dimension_set.v2:44136fa355b3678a1146ad16", "dimensions": {}, "entity": {"name": "tax_unit", "role": "taxpayer"}, "geography": {"id": "K02000001", "level": "country", "vintage": "current"}, "label": "United Kingdom 2023 tax year sum hmrc cgt gains total for person [hmrc Capital Gains Tax statistics Table 1: taxpayer numbers, gains and tax liabilities by year of disposal Table_1_2025.ods cgt_statistics_2025]", "layout": {"groupby_dimension": "hmrc.cgt_table1_line", "groupby_ordinal": 0, "groupby_value_id": "ty2023", "groupby_value_label": "Year of disposal 2023 to 2024", "measure_id": "total_gains", "measure_label": "Chargeable gains, total", "measure_ordinal": 7, "record_set_id": "hmrc.cgt_statistics_2025.table1.ty2023", "record_set_spec_hash": "b27f186424c62509e6a5e134", "record_set_spec_id": "hmrc.cgt_statistics_2025.table1.ty2023.v1", "source_column_id": "total_gains", "source_row_id": "ty2023", "table_record_kind": "total"}, "legacy_fact_key": "ledger.fact.v1:f492a811d673243b30a72d14", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:e35da0de9817851d700b614f", "ledger.source_cell.v1:70d71881a68af5ec3e5388b2"], "source_record_id": "hmrc.cgt_statistics_2025.table1.ty2023.ty2023.total_gains", "source_row_keys": []}, "observed_measure": {"source_concept": "hmrc.cgt_gains_total", "source_measure_id": "total_gains", "source_name": "hmrc", "source_table": "Capital Gains Tax statistics Table 1: taxpayer numbers, gains and tax liabilities by year of disposal", "unit": "gbp"}, "observed_measure_key": "ledger.observed_measure.v2:76f6824292f0e8bd3edb801f", "period": {"type": "tax_year", "value": 2023}, "provenance_class": "administrative", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:6e1a2ddc3a44d696e736dc6b", "source": {"extracted_at": "2026-08-06", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/hmrc/hmrc-cgt-statistics-2025/2025/95c1bb1548483cb0ed0090e820a1fba129d725ade418cf64e5f85793655e92a1/Table_1_2025.ods", "raw_r2_uri": "r2://ledger-raw/raw/hmrc/hmrc-cgt-statistics-2025/2025/95c1bb1548483cb0ed0090e820a1fba129d725ade418cf64e5f85793655e92a1/Table_1_2025.ods", "source_file": "Table_1_2025.ods", "source_name": "hmrc", "source_sha256": "95c1bb1548483cb0ed0090e820a1fba129d725ade418cf64e5f85793655e92a1", "source_size_bytes": 10002, "source_table": "Capital Gains Tax statistics Table 1: taxpayer numbers, gains and tax liabilities by year of disposal", "url": "https://assets.publishing.service.gov.uk/media/6878ac497ea209168636386e/Table_1_2025_Taxpayer_numbers_gains_and_tax_liabilities.ods", "vintage": "cgt_statistics_2025"}, "source_release_key": "ledger.source_release.v2:a6b82e1799ccd4ba57608ccd", "source_series_key": "ledger.source_series.v2:de2bf2a36f1647b20877cc1a", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:31e69e018123fa4b604582eb", "universe_constraints": {"domain": "capital_gains_tax"}, "value": 65937000000, "value_type": "integer"} {"aggregate_fact_key": "ledger.aggregate_fact.v2:5c8d18b2366a234482594297", "aggregation": {"method": "sum"}, "assertion": "observation", "concept_alignment": {"authority": "slc", "canonical_concept": "slc.student_loan_net_repayments_plan_2_part_time", "concept_alignment_key": "ledger.concept_alignment.v2:9a74091cc27999e11145d771", "evidence_notes": "Student loans in England FY2024-25 (corrected tables, slcsp012025_Corrected), Table 1A ICR balance sheet, row 'Net repayments posted during the financial year', financial year 2024-25 column block, column: Plan 2 Part-time. GBP million.", "evidence_url": "https://www.gov.uk/government/statistics/student-loans-in-england-2024-to-2025", "relation": "source_label", "source_concept": "slc.student_loan_net_repayments_plan_2_part_time"}, "dimension_set_key": "ledger.dimension_set.v2:44136fa355b3678a1146ad16", "dimensions": {}, "entity": {"name": "person", "role": "student_loan_borrower"}, "geography": {"id": "E92000001", "level": "country", "vintage": "current"}, "label": "England 2024 fiscal year sum slc student loan net repayments plan 2 part time for person [slc Student loans in England, financial year 2024-25 (corrected tables), Table 1A slcsp012025_Corrected.xlsx slcsp01_2025_corrected]", "layout": {"groupby_dimension": "slc.repayment_plan", "groupby_ordinal": 0, "groupby_value_id": "net_repayments", "groupby_value_label": "Net repayments posted during the financial year", "measure_id": "plan_2_part_time", "measure_label": "Net repayments FY2024-25, Plan 2 Part-time", "measure_ordinal": 2, "record_set_id": "slc.repayments_2025.table_1a.fy2024", "record_set_spec_hash": "b748f6aeb2b7ad68bfb560a9", "record_set_spec_id": "slc.repayments_2025.table_1a.fy2024.v1", "source_column_id": "plan_2_part_time", "source_row_id": "net_repayments", "table_record_kind": "total"}, "legacy_fact_key": "ledger.fact.v1:8fe5511f3f5ce8b9e784ca33", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:f0ba6c89d59a9cf501bd2dbc", "ledger.source_cell.v1:9ccc3a8147eeafcb76ff76fa", "ledger.source_cell.v1:446cc4b0c7a9f20af575ec37", "ledger.source_cell.v1:b3d5f4758ba698ba4a4578d4"], "source_record_id": "slc.repayments_2025.table_1a.fy2024.net_repayments.plan_2_part_time", "source_row_keys": []}, "observed_measure": {"source_concept": "slc.student_loan_net_repayments_plan_2_part_time", "source_measure_id": "plan_2_part_time", "source_name": "slc", "source_table": "Student loans in England, financial year 2024-25 (corrected tables), Table 1A", "unit": "gbp"}, "observed_measure_key": "ledger.observed_measure.v2:6cba6bfe750c9a218ebb12d8", "period": {"type": "fiscal_year", "value": 2024}, "provenance_class": "administrative", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:e9436ca620799ad1d4897afd", "source": {"extracted_at": "2026-08-08", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/slc/slc-student-loan-repayments-england-2025/2025/a9ee065ba2d6af4be8584022ac50302f22f7229919e4171cf132039b0ca26aac/slcsp012025_Corrected.xlsx", "raw_r2_uri": "r2://ledger-raw/raw/slc/slc-student-loan-repayments-england-2025/2025/a9ee065ba2d6af4be8584022ac50302f22f7229919e4171cf132039b0ca26aac/slcsp012025_Corrected.xlsx", "source_file": "slcsp012025_Corrected.xlsx", "source_name": "slc", "source_sha256": "a9ee065ba2d6af4be8584022ac50302f22f7229919e4171cf132039b0ca26aac", "source_size_bytes": 332185, "source_table": "Student loans in England, financial year 2024-25 (corrected tables), Table 1A", "url": "https://assets.publishing.service.gov.uk/media/6943ee619273c48f554cf5c5/slcsp012025_Corrected.xlsx", "vintage": "slcsp01_2025_corrected"}, "source_release_key": "ledger.source_release.v2:91e47f96684950159cb0210d", "source_series_key": "ledger.source_series.v2:513fa8b0e1881aafe14a47bf", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:02442c1ef61cbc68cc27ca5c", "universe_constraints": {"domain": "student_loans"}, "value": 95149049.60999998, "value_type": "number"} {"aggregate_fact_key": "ledger.aggregate_fact.v2:632a67850494984d9b35e639", "aggregation": {"method": "sum"}, "assertion": "source_projection", "concept_alignment": {"authority": "obr", "canonical_concept": "obr.incapacity_benefits", "concept_alignment_key": "ledger.concept_alignment.v2:2773bccf4d64dcc80fe96ffe", "evidence_notes": "OBR EFO March 2026 detailed forecast tables, sheet 4.9, row 11 ('Incapacity benefits2'), GBP billion.", "evidence_url": "https://obr.uk/download/march-2026-economic-and-fiscal-outlook-detailed-forecast-tables-expenditure/", "relation": "source_label", "source_concept": "obr.incapacity_benefits"}, "dimension_set_key": "ledger.dimension_set.v2:44136fa355b3678a1146ad16", "dimensions": {}, "entity": {"name": "person", "role": "resident_population"}, "geography": {"id": "K02000001", "level": "country", "vintage": "current"}, "label": "United Kingdom 2025 fiscal year projected sum obr incapacity benefits for person [obr EFO March 2026 detailed forecast tables: expenditure efo_expenditure.xlsx efo_march_2026]", "layout": {"groupby_dimension": "obr.efo_line", "groupby_ordinal": 0, "groupby_value_id": "incapacity_benefits", "groupby_value_label": "Incapacity benefits2", "measure_id": "amount", "measure_label": "Incapacity benefits2, FY2025-26", "measure_ordinal": 0, "record_set_id": "obr.efo_2026_03.expenditure.incapacity_benefits.fy2025", "record_set_spec_hash": "09a63e886a271917519a6cd5", "record_set_spec_id": "obr.efo_2026_03.expenditure.incapacity_benefits.fy2025.v1", "source_column_id": "amount", "source_row_id": "incapacity_benefits", "table_record_kind": "total"}, "legacy_fact_key": "ledger.fact.v1:6f0c64cbe42cf4e2d2907f78", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:963cb1a2191faedf0d203f65", "ledger.source_cell.v1:d97cb4c94d2ec623264d1d47"], "source_record_id": "obr.efo_2026_03.expenditure.incapacity_benefits.fy2025.incapacity_benefits.amount", "source_row_keys": []}, "observed_measure": {"source_concept": "obr.incapacity_benefits", "source_measure_id": "amount", "source_name": "obr", "source_table": "EFO March 2026 detailed forecast tables: expenditure", "unit": "gbp"}, "observed_measure_key": "ledger.observed_measure.v2:fde1b4a671b103ebe2c4fe82", "period": {"type": "fiscal_year", "value": 2025}, "provenance_class": "model_output", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:ea656e5e2a3495f2c99bfb27", "source": {"extracted_at": "2026-08-06", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/obr/obr-efo-expenditure-march-2026/2026/700bfd700c872794e5fe8cf164086cd38a63850db26427b9d4b2e363d177d9a1/efo_expenditure.xlsx", "raw_r2_uri": "r2://ledger-raw/raw/obr/obr-efo-expenditure-march-2026/2026/700bfd700c872794e5fe8cf164086cd38a63850db26427b9d4b2e363d177d9a1/efo_expenditure.xlsx", "source_file": "efo_expenditure.xlsx", "source_name": "obr", "source_sha256": "700bfd700c872794e5fe8cf164086cd38a63850db26427b9d4b2e363d177d9a1", "source_size_bytes": 236965, "source_table": "EFO March 2026 detailed forecast tables: expenditure", "url": "https://obr.uk/download/march-2026-economic-and-fiscal-outlook-detailed-forecast-tables-expenditure/", "vintage": "efo_march_2026"}, "source_release_key": "ledger.source_release.v2:5f8a36441ddcecc13c18d680", "source_series_key": "ledger.source_series.v2:96fa1a8c784ce083883c5a0a", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:ecb00e907376ba856934e4ad", "universe_constraints": {"domain": "public_sector_finances"}, "value": 7206287181.538654, "value_type": "number"} {"aggregate_fact_key": "ledger.aggregate_fact.v2:6c212695ea75be0d2a635e9b", "aggregation": {"method": "sum"}, "assertion": "observation", "dimension_set_key": "ledger.dimension_set.v2:44136fa355b3678a1146ad16", "dimensions": {}, "entity": {"name": "person", "role": "resident_population"}, "geography": {"id": "K02000001", "level": "country", "vintage": "gss_2024"}, "label": "United Kingdom 2024 calendar year count ons mid year population estimate for person [ons Mid-2024 population estimates, UK: countries and regions by single year of age and sex (MYE2) mye24tablesuk.xlsx mid_2024]", "layout": {"groupby_dimension": "age", "groupby_ordinal": 0, "groupby_value_id": "uk", "groupby_value_label": "United Kingdom", "measure_id": "population", "measure_label": "Resident population", "measure_ordinal": 0, "record_set_id": "ons.mid2024.mye2_persons.uk.all_ages", "record_set_spec_hash": "9a06d466bbbd3788640af817", "record_set_spec_id": "ons.mye2_persons.uk.all_ages.v1", "source_column_id": "population", "source_row_id": "uk", "table_record_kind": "total"}, "legacy_fact_key": "ledger.fact.v1:9bf0a3ba5ad6117ca8e0d0ac", "lineage": {"source_cell_keys": ["ledger.source_cell.v1:fbc0570947c34c475532adda", "ledger.source_cell.v1:26f9cdc2784a7713953551bd", "ledger.source_cell.v1:e4d9207fd741f6fbdc82de4a"], "source_record_id": "ons.mid2024.mye2_persons.uk.all_ages.uk.population", "source_row_keys": []}, "observed_measure": {"source_concept": "ons.mid_year_population_estimate", "source_measure_id": "population", "source_name": "ons", "source_table": "Mid-2024 population estimates, UK: countries and regions by single year of age and sex (MYE2)", "unit": "count"}, "observed_measure_key": "ledger.observed_measure.v2:a05342302b71ceb67b12978e", "period": {"type": "calendar_year", "value": 2024}, "provenance_class": "census", "schema_version": "ledger.consumer_fact.v1", "semantic_fact_key": "ledger.semantic_fact.v2:065ea5242b0c7b9f810a9ce6", "source": {"extracted_at": "2026-08-06", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "ledger-raw", "raw_r2_key": "raw/ons/ons-mye-2024-uk/2024/f78d50e8d77fe5ed9d04667d6875aefcf62b56380af7aceb2e90dce067981526/mye24tablesuk.xlsx", "raw_r2_uri": "r2://ledger-raw/raw/ons/ons-mye-2024-uk/2024/f78d50e8d77fe5ed9d04667d6875aefcf62b56380af7aceb2e90dce067981526/mye24tablesuk.xlsx", "source_file": "mye24tablesuk.xlsx", "source_name": "ons", "source_sha256": "f78d50e8d77fe5ed9d04667d6875aefcf62b56380af7aceb2e90dce067981526", "source_size_bytes": 1062342, "source_table": "Mid-2024 population estimates, UK: countries and regions by single year of age and sex (MYE2)", "url": "https://www.ons.gov.uk/file?uri=/peoplepopulationandcommunity/populationandmigration/populationestimates/datasets/populationestimatesforukenglandandwalesscotlandandnorthernireland/mid2024/mye24tablesuk.xlsx", "vintage": "mid_2024"}, "source_release_key": "ledger.source_release.v2:615ee18597cbfc9a75e7e2a5", "source_series_key": "ledger.source_series.v2:9ffe2c36294084406279ceae", "universe_constraint_set_key": "ledger.universe_constraint_set.v2:3171531aa949466cfcf8b77d", "universe_constraints": {"domain": "resident_population"}, "value": 69281437, "value_type": "integer"} diff --git a/packages/microcosm-build/tests/test_country_spec.py b/packages/microcosm-build/tests/test_country_spec.py index 38f9cd437..685f6964d 100644 --- a/packages/microcosm-build/tests/test_country_spec.py +++ b/packages/microcosm-build/tests/test_country_spec.py @@ -931,6 +931,7 @@ def test_spi_spine_adds_no_country_package_resources(self) -> None: "regional_land_values.json", "source_stages.json", "take_up_contract.json", + "target_reference_signed_exclusions.json", "input_mass_reviewed_exclusions.json", "spine_swap_signed_differences.json", "spine_candidate_acceptance.json", @@ -1022,6 +1023,7 @@ def test_uk_package_loads(self) -> None: "regional_land_values.json", "source_stages.json", "take_up_contract.json", + "target_reference_signed_exclusions.json", "input_mass_reviewed_exclusions.json", "spine_swap_signed_differences.json", "spine_candidate_acceptance.json", @@ -1055,7 +1057,7 @@ 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) == 408 + assert len(references) == 415 assert references["obr.esa"].value_operation == "sum" assert references["dwp.uc.households"].value_operation == ( "calendar_year_average" diff --git a/packages/microcosm-build/tests/test_ledger_targets.py b/packages/microcosm-build/tests/test_ledger_targets.py index cf441548d..2a63040f3 100644 --- a/packages/microcosm-build/tests/test_ledger_targets.py +++ b/packages/microcosm-build/tests/test_ledger_targets.py @@ -1057,6 +1057,152 @@ def test__given_academic_year_record_sets__then_latest_source_period_is_used() - assert registry.specs[0].value == 1_159_761 +def test__given_year_prefixed_record_sets__then_latest_source_period_is_used() -> None: + older = _consumer_fact_row_for_period(2024, value=95_031) + newer = _consumer_fact_row_for_period(2025, value=85_629) + older["layout"]["record_set_id"] = "dfe.release2026.year2024.early_learning" + newer["layout"]["record_set_id"] = "dfe.release2026.year2025.early_learning" + reference = LedgerTargetReference( + name="latest DfE childcare count", + ledger_selector={"source_name": "irs_soi"}, + entity="person", + measure="person_count", + period=2025, + ) + + registry = compile_ledger_target_references( + [older, newer], [reference], country="uk" + ) + + assert registry.specs[0].value == 85_629 + + +def test__given_one_difference_fact_per_operand__then_difference_compiles() -> None: + minuend = _consumer_fact_row_for_period(2025, value=775_994) + subtrahend = _consumer_fact_row_for_period(2025, value=379_029) + minuend["dimensions"] = {"entitlement_type": "Universal"} + subtrahend["dimensions"] = {"entitlement_type": "Working parents"} + reference = LedgerTargetReference( + name="universal-only childcare", + ledger_selector={"source_name": "irs_soi"}, + value_operation="difference", + value_operands=( + { + "role": "minuend", + "dimension_values": {"entitlement_type": "Universal"}, + }, + { + "role": "subtrahend", + "dimension_values": {"entitlement_type": "Working parents"}, + }, + ), + entity="person", + measure="person_count", + period=2025, + ) + + registry = compile_ledger_target_references( + [minuend, subtrahend], [reference], country="uk" + ) + + assert registry.specs[0].value == 396_965 + assert registry.specs[0].metadata["ledger_value_formula"] == ( + "minuend - subtrahend" + ) + assert json.loads(registry.specs[0].metadata["ledger_member_fact_keys"]) == [ + minuend["aggregate_fact_key"], + subtrahend["aggregate_fact_key"], + ] + + +@pytest.mark.parametrize( + ("minuend_value", "subtrahend_value"), + [(1.0, 2.0), (1e308, -1e308)], +) +def test__given_invalid_difference__then_compilation_refuses_it( + minuend_value: float, subtrahend_value: float +) -> None: + minuend = _consumer_fact_row_for_period(2025, value=minuend_value) + subtrahend = _consumer_fact_row_for_period(2025, value=subtrahend_value) + minuend["dimensions"] = {"role": "whole"} + subtrahend["dimensions"] = {"role": "part"} + reference = LedgerTargetReference( + name="invalid difference", + ledger_selector={"source_name": "irs_soi"}, + value_operation="difference", + value_operands=( + {"role": "minuend", "dimension_values": {"role": "whole"}}, + {"role": "subtrahend", "dimension_values": {"role": "part"}}, + ), + entity="person", + measure="person_count", + period=2025, + ) + + with pytest.raises(ValueError, match="difference produced invalid value"): + compile_ledger_target_references( + [minuend, subtrahend], [reference], country="uk" + ) + + +def test__given_difference_operands_at_different_periods__then_compilation_fails() -> ( + None +): + minuend = _consumer_fact_row_for_period(2025, value=10.0) + subtrahend = _consumer_fact_row_for_period(2024, value=2.0) + minuend["dimensions"] = {"role": "whole"} + subtrahend["dimensions"] = {"role": "part"} + reference = LedgerTargetReference( + name="period-mismatched difference", + ledger_selector={"source_name": "irs_soi"}, + value_operation="difference", + value_operands=( + {"role": "minuend", "dimension_values": {"role": "whole"}}, + {"role": "subtrahend", "dimension_values": {"role": "part"}}, + ), + entity="person", + measure="person_count", + period=2025, + ) + + with pytest.raises(ValueError, match="same latest period"): + compile_ledger_target_references( + [minuend, subtrahend], [reference], country="uk" + ) + + +def test__given_sum_member_shortfall__then_compilation_fails_loudly() -> None: + only_member = _consumer_fact_row_for_period(2025, value=10.0) + reference = LedgerTargetReference( + name="guarded sum", + ledger_selector={"source_name": "irs_soi"}, + value_operation="sum", + expected_member_count=2, + entity="person", + measure="person_count", + period=2025, + ) + + with pytest.raises(ValueError, match="expected 2 members.*resolved 1"): + compile_ledger_target_references([only_member], [reference], country="uk") + + +def test__given_identifier_bypasses_selector__then_entity_pin_still_applies() -> None: + fact = _consumer_fact_row_for_period(2025, value=10.0) + fact["entity"] = {"name": "government"} + reference = LedgerTargetReference( + name="entity-guarded reference", + ledger_fact_key=fact["aggregate_fact_key"], + ledger_selector={"entity_name": "person"}, + entity="person", + measure="person_count", + period=2025, + ) + + with pytest.raises(ValueError, match="requires entity_name 'person'"): + compile_ledger_target_references([fact], [reference], country="uk") + + def test__given_selector_matches_future_year__then_latest_eligible_period_is_used() -> ( None ): diff --git a/packages/microcosm-build/tests/test_spec_engine_country_bundles.py b/packages/microcosm-build/tests/test_spec_engine_country_bundles.py index 3bb3d801a..1e791eade 100644 --- a/packages/microcosm-build/tests/test_spec_engine_country_bundles.py +++ b/packages/microcosm-build/tests/test_spec_engine_country_bundles.py @@ -55,7 +55,7 @@ ), ( "uk", - "5751a2b7b6ea771c6c885f62438927603e6acec3d1bdacbbbced2a1088b69175", + "cfb76f76cf42b9dedf640dfcb8a86a66ba8757da3b672179ad5754b61a2099fc", { "benunit.benunit_id", "household.household_id", diff --git a/packages/microcosm-build/tests/test_uk_battery_bindings.py b/packages/microcosm-build/tests/test_uk_battery_bindings.py index 71346837b..7e35a0888 100644 --- a/packages/microcosm-build/tests/test_uk_battery_bindings.py +++ b/packages/microcosm-build/tests/test_uk_battery_bindings.py @@ -55,9 +55,9 @@ KEY = base64.b64encode(b"\x07" * 32).decode("ascii") #: The shared exclusion-expiry clock, fixed inside the committed register's -#: validity window (approved 2026-08-10, expires 2027-02-10) so the suite +#: validity window (latest approval 2026-09-05, expires 2027-02-10) so the suite #: never drifts across an expiry boundary. -CLOCK = date(2026, 9, 1) +CLOCK = date(2026, 9, 5) VALIDATE_REFERENCE = ( "microcosm.build.uk_runtime.weighted_integrity." diff --git a/packages/microcosm-build/tests/test_uk_bus_targets.py b/packages/microcosm-build/tests/test_uk_bus_targets.py new file mode 100644 index 000000000..57f0988b4 --- /dev/null +++ b/packages/microcosm-build/tests/test_uk_bus_targets.py @@ -0,0 +1,96 @@ +from __future__ import annotations + +import json +from importlib import resources as importlib_resources +from pathlib import Path + +import pytest + +FIXTURE = Path(__file__).parent / "fixtures" / "uk_bus05i_fy2025.json" +BUS_PREFIX = "dft.bus_" + + +def _resource(name: str) -> dict: + return json.loads( + importlib_resources.files("microcosm.build.uk").joinpath(name).read_text() + ) + + +def test_bus05i_fy2025_subareas_reconcile_to_england() -> None: + fixture = json.loads(FIXTURE.read_text()) + rows = fixture["rows"] + + assert len(rows) == 6 + assert {row["period"]["type"] for row in rows} == {"fiscal_year"} + assert {row["period"]["value"] for row in rows} == {2025} + assert {row["unit"] for row in rows} == {"gbp"} + + for concept in { + "dft.local_bus_passenger_fare_receipts", + "dft.local_bus_total_estimated_net_support", + }: + values = { + row["groupby_value_id"]: row["value"] + for row in rows + if row["source_concept"] == concept + } + assert values["london"] + values["england_outside_london"] == pytest.approx( + values["england"], abs=1_000 + ) + + +def test_bus_targets_are_active_or_signed_excluded_as_declared() -> None: + contract = _resource("uk_population_targets.json") + references = { + row["name"] for row in _resource("target_references.json")["target_references"] + } + membership = _resource("target_reference_membership.json") + exclusions = { + row["target_id"]: row + for row in _resource("target_reference_signed_exclusions.json")["exclusions"] + } + bus = { + row["target_id"]: row + for row in contract["targets"] + if row["target_id"].startswith(BUS_PREFIX) + } + + active = {"dft.bus_fare_receipts.england", "dft.bus_net_support.england"} + excluded = set(bus) - active + assert len(bus) == 8 + assert active <= references + assert excluded.isdisjoint(references) + assert set(exclusions) >= excluded + assert {exclusions[target_id]["reason_id"] for target_id in excluded} == { + "region_pin_unsupported", + "statistical_scope_unsupported", + "no_publisher_uk_total", + } + assert all( + membership["targets"][target_id]["status"] == "signed_excluded" + for target_id in excluded + ) + + +def test_bus_selectors_do_not_consume_nts_or_bus0415() -> None: + targets = [ + row + for row in _resource("uk_population_targets.json")["targets"] + if row["target_id"].startswith(BUS_PREFIX) + ] + selected_concepts = { + row["ledger_selector"].get("source_concept", "") for row in targets + } + + assert selected_concepts == { + "dft.local_bus_passenger_fare_receipts", + "dft.local_bus_total_estimated_net_support", + } + england_notes = " ".join( + row["bindings"]["policyengine"]["notes"] + for row in targets + if row["target_id"].endswith("england") + ) + assert "NTS0705a" in england_notes + assert "BUS0415" in england_notes + assert "#790" in england_notes diff --git a/packages/microcosm-build/tests/test_uk_childcare_targets.py b/packages/microcosm-build/tests/test_uk_childcare_targets.py new file mode 100644 index 000000000..332e86e29 --- /dev/null +++ b/packages/microcosm-build/tests/test_uk_childcare_targets.py @@ -0,0 +1,66 @@ +from __future__ import annotations + +import inspect +import json +from importlib import resources as importlib_resources + +import pytest + +pytestmark = pytest.mark.requires_uk + + +def _system(): + from policyengine_uk import CountryTaxBenefitSystem + + return CountryTaxBenefitSystem() + + +def test_childcare_target_formula_contracts_match_the_installed_engine() -> None: + system = _system() + universal_source = inspect.getsource( + system.variables["universal_childcare_entitlement_eligible"].formula + ) + tax_free_source = inspect.getsource(system.variables["tax_free_childcare"].formula) + + assert "~has_extended_childcare" in universal_source + assert "tax_free_childcare_spend_routed_share" in tax_free_source + + for name in ( + "is_child_receiving_tax_free_childcare", + "is_child_receiving_extended_childcare", + "is_child_receiving_targeted_childcare", + "is_child_receiving_universal_childcare", + ): + variable = system.variables[name] + assert variable.entity.key == "person", name + assert variable.value_type is bool, name + + +def test_extended_childcare_age_one_hours_change_on_2025_01_01() -> None: + system = _system() + + before = system.parameters("2024-12-31").gov.dfe.extended_childcare_entitlement + after = system.parameters("2025-01-01").gov.dfe.extended_childcare_entitlement + + assert before.hours.calc(1) == 0 + assert after.hours.calc(1) == 15 + + +def test_childcare_activation_preserves_existing_calibration_gates() -> None: + from microcosm.build.uk_runtime.national_doctrine import ( + UK_NATIONAL_SOLVE_DOCTRINE, + ) + + gates = json.loads( + importlib_resources.files("microcosm.build.uk") + .joinpath("gates.json") + .read_text() + )["gates"] + by_id = {gate["id"]: gate for gate in gates} + + assert by_id["uk_target_fit"]["criticality"] == "release_blocking" + assert by_id["uk_target_fit"]["parameters"]["max_abs_relative_error"] == 0.25 + assert by_id["uk_calibration_reference_coverage"]["criticality"] == ( + "release_blocking" + ) + assert UK_NATIONAL_SOLVE_DOCTRINE.target_weight_rule == "uniform" diff --git a/packages/microcosm-build/tests/test_uk_diagnostics.py b/packages/microcosm-build/tests/test_uk_diagnostics.py index ee5ad4734..a771c9b95 100644 --- a/packages/microcosm-build/tests/test_uk_diagnostics.py +++ b/packages/microcosm-build/tests/test_uk_diagnostics.py @@ -259,6 +259,9 @@ def _diagnostics_case(*, with_skipped: bool = False): period=2023, source="Synthetic UK diagnostics fixture", family="fixture", + metadata=( + {"observation_basis": "annual_flow"} if row_index == 0 else {} + ), ) ) geography[f"{name}@2023"] = "la" if level == "local_authority" else level @@ -477,6 +480,7 @@ def test_payload_preserves_common_schema_and_adds_versioned_uk_evidence() -> Non "weights", "zero_weight_rows_by_stratum", "target_pass_rates_by_geography_level", + "target_observation_basis", } assert uk["schema_version"] == UK_DIAGNOSTICS_SCHEMA_VERSION assert set(uk["weights"]) == { @@ -497,6 +501,7 @@ def test_payload_preserves_common_schema_and_adds_versioned_uk_evidence() -> Non assert uk["weights"]["ess_fraction"] == pytest.approx( payload["effective_sample_size"] / frame.n("household") ) + assert uk["target_observation_basis"] == {"national_target@2023": "annual_flow"} assert uk["target_pass_rates_by_geography_level"] == [ { "geography_level": "national", @@ -565,6 +570,7 @@ def test_uk_payload_shared_layer_matches_shared_diagnostics_format() -> None: "weights", "zero_weight_rows_by_stratum", "target_pass_rates_by_geography_level", + "target_observation_basis", } diff --git a/packages/microcosm-build/tests/test_uk_frs_stochastic.py b/packages/microcosm-build/tests/test_uk_frs_stochastic.py index 7a72bcf82..c64eda93d 100644 --- a/packages/microcosm-build/tests/test_uk_frs_stochastic.py +++ b/packages/microcosm-build/tests/test_uk_frs_stochastic.py @@ -1,5 +1,7 @@ from __future__ import annotations +from types import SimpleNamespace + import numpy as np import pandas as pd import pytest @@ -44,6 +46,7 @@ class _Contract: "tv_licence_evasion_rate": 0.5, "first_time_buyer_rate": 0.5, "property_purchase_rate": 0.5, + "tax_free_childcare_spend_routed_share": 0.593, } def rate(self, key: str, build_year: int | None = None) -> float: @@ -53,6 +56,12 @@ def continuous_entry(self, key: str): assert key == "maximum_extended_childcare_hours_usage" return {"mean": 15.019, "sd": 4.972, "lower": 0, "upper": 30} + def entry(self, key: str): + assert key == "tax_free_childcare_spend_routed_share" + return SimpleNamespace(raw={"entity": "person"}) + + build_year = 2024 + class _FakeEngine: country = "uk" @@ -62,7 +71,7 @@ def __init__(self, lha_category): def materialize(self, frame, variables, period): assert tuple(variables) == ("LHA_category",) - assert period == "2023" + assert period == "2024" return {"LHA_category": self.lha_category} @@ -90,7 +99,7 @@ def _frame() -> object: person=person, benunit=benunit, household=household, - time_period="2023", + time_period="2024", ) @@ -135,6 +144,7 @@ def test_person_draws_pin_scp_age_six_boundary_and_uniform_draw() -> None: np.testing.assert_array_equal(derived["would_claim_scp"].to_numpy(), expected) private_draws = derived["attends_private_school_random_draw"].to_numpy() assert ((0 <= private_draws) & (private_draws < 1)).all() + assert (derived["tax_free_childcare_spend_routed_share"] == 0.593).all() def test_person_and_household_stage_families_are_deterministic() -> None: diff --git a/packages/microcosm-build/tests/test_uk_national_calibration.py b/packages/microcosm-build/tests/test_uk_national_calibration.py index a259bd24e..0dadc852f 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 = 408 +ACTIVE_REFERENCE_COUNT = 415 def _uc_reference(**overrides) -> LedgerTargetReference: @@ -72,6 +72,7 @@ def _fact( "aggregate_fact_key": "ledger.aggregate_fact.v2:uc-fixture", "aggregation": {"method": "sum"}, "assertion": "observation", + "entity": {"name": "person"}, "geography": {"level": "country", "id": "K02000001"}, "observed_measure": { "source_name": source_name, @@ -241,6 +242,7 @@ def _fact_for_reference( "aggregate_fact_key": f"ledger.aggregate_fact.v2:{reference.name}", "aggregation": {"method": "sum"}, "assertion": "observation", + "entity": {"name": selector.get("entity_name", reference.entity)}, "dimensions": dimensions, "geography": { "level": selector.get("geography_level", "country"), diff --git a/packages/microcosm-build/tests/test_uk_population_targets.py b/packages/microcosm-build/tests/test_uk_population_targets.py index d780b8c2d..e0ddf8278 100644 --- a/packages/microcosm-build/tests/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/test_uk_population_targets.py @@ -48,6 +48,9 @@ "groupby_dimension", "dimensions", "dimension_values", + "entity_name", + "period_type", + "layout_groupby_value_id", } LOCAL_SELECTOR_KEYS = {"source_name", "source_measure_id", "record_set_spec_id"} POLICYENGINE_BINDING_KEYS = { @@ -158,21 +161,21 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: resource = _load() assert resource["country"] == "uk" - assert resource["allowed_value_operations"] == ["identity", "sum"] + assert resource["allowed_value_operations"] == ["identity", "sum", "difference"] assert resource["resolution_defaults"] == { "base_period_policy": "latest_not_after_build_base_period", "operation": "sum", "assertion_policy": "observed_only", } - assert len(resource["targets"]) == 222 + assert len(resource["targets"]) == 235 target_ids = [target["target_id"] for target in resource["targets"]] registry_scope = resource["registry_parity"]["scope_target_ids"] profile_scope = resource["profile_parity"]["scope_target_ids"] - assert len(registry_scope) == 189 + assert len(registry_scope) == 202 assert len(profile_scope) == 33 - assert target_ids[:189] == registry_scope - assert target_ids[189:] == profile_scope + assert target_ids[:202] == registry_scope + assert target_ids[202:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -186,7 +189,7 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: assert mapped_target_ids | set(unmapped_declarations) == set(registry_scope) assert all(reason for reason in unmapped_declarations.values()) assert len(mapped_target_ids) == 184 - assert len(unmapped_declarations) == 5 + assert len(unmapped_declarations) == 18 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 assert set(suppressed_ancestors).isdisjoint(parity["mapped"]) @@ -305,7 +308,7 @@ def test_uk_population_targets_have_unique_target_ids() -> None: resource = _load() target_ids = [target["target_id"] for target in resource["targets"]] - assert len(target_ids) == 222 + assert len(target_ids) == 235 assert len(target_ids) == len(set(target_ids)) @@ -359,6 +362,47 @@ def test_uk_population_targets_declare_selector_vocabularies_and_bindings() -> N assert len(metric_names_seen) == len(set(metric_names_seen)) +def test_childcare_bus_observation_basis_and_entity_pins_are_closed_world() -> None: + resource = _load() + registry_scope = set(resource["registry_parity"]["scope_target_ids"]) + allowed_basis = { + "annual_flow", + "annual_unique_count", + "january_stock", + "fiscal_year_flow", + } + allowed_operations = set(resource["allowed_value_operations"]) + for target in resource["targets"]: + operation = target.get("value_operation", "identity") + assert operation in allowed_operations, target["target_id"] + basis = target["measurement"].get("observation_basis") + if basis is not None: + assert basis in allowed_basis, target["target_id"] + if target["target_id"] in registry_scope and target["measurement"][ + "concept" + ].endswith(".amount"): + assert "entity_name" in target["ledger_selector"], target["target_id"] + + childcare = [ + target + for target in resource["targets"] + if target["family"] == "dfe_funded_childcare" + ] + assert len(childcare) == 3 + assert all( + not target["measurement"]["concept"].endswith(".amount") for target in childcare + ) + + +def test_diagnostic_only_cma_comparator_is_not_a_target() -> None: + resource = _load() + + assert all( + "cma" not in target["target_id"].lower() for target in resource["targets"] + ) + assert all("role" not in target for target in resource["targets"]) + + def test_uk_population_targets_declare_chronicle_loader_guarantees() -> None: resource = _load() registry_scope = set(resource["registry_parity"]["scope_target_ids"]) diff --git a/packages/microcosm-build/tests/test_uk_source_stages.py b/packages/microcosm-build/tests/test_uk_source_stages.py index 657f82fd1..30c2be5a0 100644 --- a/packages/microcosm-build/tests/test_uk_source_stages.py +++ b/packages/microcosm-build/tests/test_uk_source_stages.py @@ -603,6 +603,7 @@ def test_e3_operation_kinds_are_declared_in_order(self) -> None: "assign_binary_from_rate", "assign_binary_from_banded_rates", "assign_uniform_draw", + "assign_period_constant", ] assert [op.kind for op in stages["frs_household_draws"].operations] == [ "assign_binary_from_rate", @@ -926,9 +927,7 @@ def test_e7_declared_seed_lockstep(self) -> None: assert stages["hmrc_spi_income_spine"].operations[2].parameters["seed"] == 42 assert stages["hmrc_spi_income_spine"].operations[3].parameters["seed"] == 43 assert stages["uc_reporter_redraw"].operations[3].parameters["seed"] == 44 - assert ( - stages["uc_capital_coherence"].operations[1].parameters["seed"] == 0 - ) + assert stages["uc_capital_coherence"].operations[1].parameters["seed"] == 0 def test_e8_declared_seed_lockstep(self) -> None: stages = load_country_spec("uk").sources.stage_map() diff --git a/packages/microcosm-build/tests/test_uk_stochastic_tools.py b/packages/microcosm-build/tests/test_uk_stochastic_tools.py index 31dc82019..cb659d549 100644 --- a/packages/microcosm-build/tests/test_uk_stochastic_tools.py +++ b/packages/microcosm-build/tests/test_uk_stochastic_tools.py @@ -2,12 +2,14 @@ import importlib.util from pathlib import Path +from types import SimpleNamespace import numpy as np import pandas as pd import pytest from microcosm.build.uk_runtime.national_frame import uk_national_frame +from microcosm.build.uk_runtime.take_up_contract import load_uk_take_up_contract ROOT = Path(__file__).resolve().parents[3] @@ -21,15 +23,21 @@ def _load_tool(name: str): return module -def test_childcare_draws_use_seeded_default_rng_not_global_seed(monkeypatch) -> None: +def test_childcare_draws_are_identity_keyed_and_hold_hours_fixed(monkeypatch) -> None: tool = _load_tool("fit_uk_childcare_takeup") def forbidden_seed(*args, **kwargs): raise AssertionError("np.random.seed must not be used") monkeypatch.setattr(tool.np.random, "seed", forbidden_seed) - first = tool.draw_childcare_inputs(5, tool.INITIAL_PARAMS, seed=42) - second = tool.draw_childcare_inputs(5, tool.INITIAL_PARAMS, seed=42) + contract = load_uk_take_up_contract() + ids = np.array([5, 4, 3, 2, 1]) + first = tool.draw_childcare_inputs( + ids, tool.INITIAL_PARAMS, seed=42, contract=contract + ) + second = tool.draw_childcare_inputs( + ids, tool.INITIAL_PARAMS, seed=42, contract=contract + ) for key in first: np.testing.assert_array_equal(first[key], second[key]) @@ -42,33 +50,50 @@ def test_childcare_fit_receipt_is_deterministic_with_seeded_runner( input_h5 = tmp_path / "fixture.h5" input_h5.write_bytes(b"synthetic") - def runner(path: Path, params: np.ndarray, seed: int): + targets = {name: float(index + 1) for index, name in enumerate(tool.TARGET_IDS)} + + def runner(path: Path, params: np.ndarray, seed: int, period: int, contract): scale = float(params.sum()) + seed * 0.0 + len(path.read_bytes()) * 0.0 - spending = { - "tfc": 0.63 + scale * 0.0, - "extended": 2.5, - "targeted": 0.6, - "universal": 1.7, - } - caseload = { - "tfc": 985, - "extended": 740, - "targeted": 130, - "universal": 490, - } - return spending, caseload + assert period == 2024 + assert contract.resource_sha256 + return {name: value + scale * 0.0 for name, value in targets.items()} first = tool.fit_childcare_takeup( - input_h5, seed=42, maxiter=1, runner=runner, generated_at="2026-08-17" + input_h5, + seed=42, + maxiter=1, + runner=runner, + generated_at="2026-08-17", + targets=targets, ) second = tool.fit_childcare_takeup( - input_h5, seed=42, maxiter=1, runner=runner, generated_at="2026-08-17" + input_h5, + seed=42, + maxiter=1, + runner=runner, + generated_at="2026-08-17", + targets=targets, ) assert first == second assert first["input_sha256"] assert first["seed"] == 42 - assert first["target_citations"]["tfc"].startswith("HMRC") + assert set(first["params"]) == set(tool.RATE_KEYS) + assert len(first["params"]) == 4 + assert set(first["achieved"]) == set(tool.TARGET_IDS) + + +def test_childcare_fitter_family_allow_list_excludes_entitlement_spending() -> None: + tool = _load_tool("fit_uk_childcare_takeup") + + assert tool.TARGET_IDS == ( + "hmrc.tfc.government_top_up", + "hmrc.tfc.children_with_used_accounts", + "dfe.funded_childcare.working_parent_children_2_to_4", + "dfe.funded_childcare.early_learning_2_year_olds", + "dfe.funded_childcare.universal_only_children", + ) + assert not any("spending" in target_id for target_id in tool.TARGET_IDS[1:]) def test_identity_stability_receipt_compares_by_entity_id() -> None: @@ -100,9 +125,17 @@ def test_e4_identity_receipt_survives_permutation_on_synthetic_frame() -> None: tool = _load_tool("verify_uk_identity_stability") class Contract: - def rate(self, key: str) -> float: + build_year = 2024 + + def rate(self, key: str, build_year: int | None = None) -> float: + if key == "tax_free_childcare_spend_routed_share": + return 0.593 return 0.5 if not key.startswith("scp") else 0.9 + def entry(self, key: str): + assert key == "tax_free_childcare_spend_routed_share" + return SimpleNamespace(raw={"entity": "person"}) + def continuous_entry(self, key: str): return {"mean": 15.019, "sd": 4.972, "lower": 0, "upper": 30} diff --git a/packages/microcosm-build/tests/test_uk_take_up_contract.py b/packages/microcosm-build/tests/test_uk_take_up_contract.py index 76f55e596..402410eef 100644 --- a/packages/microcosm-build/tests/test_uk_take_up_contract.py +++ b/packages/microcosm-build/tests/test_uk_take_up_contract.py @@ -5,6 +5,7 @@ import json from importlib import metadata from importlib.resources import files +from pathlib import Path import pytest @@ -56,6 +57,7 @@ def test_uk_contract_loads_and_selects_build_year_rates() -> None: 0.1252, 0.384, 0.0385, + 0.593, ] @@ -66,6 +68,18 @@ def test_year_selection_uses_latest_value_at_or_before_build_year() -> None: assert contract.rate("child_benefit", 2023) == 0.89 assert contract.rate("tax_free_childcare", 2024) == 0.88 assert contract.rate("tv_licence_evasion_rate", 2024) == 0.1252 + assert contract.rate("tax_free_childcare_spend_routed_share", 2017) == 0.359 + assert contract.rate("tax_free_childcare_spend_routed_share", 2024) == 0.593 + assert contract.rate("tax_free_childcare_spend_routed_share", 2025) == 0.582 + + +def test_rate_entity_is_closed_world(monkeypatch) -> None: + raw = _resource() + mutated = copy.deepcopy(raw) + mutated["stochastic"][-1]["entity"] = "government" + _reload_with(monkeypatch, mutated) + with pytest.raises(ValueError, match="invalid entity"): + load_uk_take_up_contract() def test_rate_without_source_is_refused(monkeypatch) -> None: @@ -88,7 +102,15 @@ def test_frozen_and_fitted_status_blocks_are_required(monkeypatch) -> None: load_uk_take_up_contract() mutated = copy.deepcopy(raw) - del mutated["continuous"][0]["fitting_receipt"] + mutated["continuous"].append( + { + "key": "synthetic_fitted_entry", + "source": { + "source": "synthetic test source", + "status": "fitted_offline", + }, + } + ) _reload_with(monkeypatch, mutated) with pytest.raises(ValueError, match="fitting_receipt"): load_uk_take_up_contract() @@ -110,6 +132,40 @@ def test_resource_digest_binds_complete_json() -> None: assert uk_take_up_contract_identity(contract)["resource_sha256"] == expected +def test_tfc_routed_share_series_matches_pinned_chronicle_feed_when_present() -> None: + feed = Path(__file__).resolve().parents[3] / ".codex-work/consumer_facts_uk.jsonl" + if not feed.exists(): + pytest.skip("pinned Chronicle UK feed is not present") + + annual: dict[int, float] = {} + monthly: dict[int, list[float]] = {} + matched = 0 + with feed.open(encoding="utf-8") as rows: + for line in rows: + if "hmrc-tax-free-childcare-march-2026" not in line: + continue + row = json.loads(line) + matched += 1 + period = row["period"] + measure = row["observed_measure"]["source_measure_id"] + if measure == "annual_unique_children_with_used_accounts": + annual[int(period["value"])] = float(row["value"]) + elif measure == "monthly_children_with_used_accounts": + year, month = map(int, str(period["value"]).split("-")) + financial_year = year if month >= 4 else year - 1 + monthly.setdefault(financial_year, []).append(float(row["value"])) + + assert matched == 126 + contract = load_uk_take_up_contract() + entry = contract.entry("tax_free_childcare_spend_routed_share") + for year in range(2017, 2026): + assert len(monthly[year]) == 12 + derived = sum(monthly[year]) / annual[year] / 12 + assert round(derived, 3) == entry.values[f"{year}-04-01"] + assert entry.values["2017-04-01"] == 0.359 + assert entry.values["2024-04-01"] == 0.593 + + @pytest.mark.requires_uk def test_engine_version_is_read_dynamically_and_tie_break_absent() -> None: import policyengine_uk diff --git a/packages/microcosm-build/tests/test_uk_target_references.py b/packages/microcosm-build/tests/test_uk_target_references.py index 9c650e3e6..28c0cefd4 100644 --- a/packages/microcosm-build/tests/test_uk_target_references.py +++ b/packages/microcosm-build/tests/test_uk_target_references.py @@ -12,6 +12,7 @@ import os import subprocess import sys +from dataclasses import replace from importlib import resources as importlib_resources from pathlib import Path @@ -40,7 +41,7 @@ _value_operation_by_target_id, ) -ACTIVE_REFERENCE_COUNT = 408 +ACTIVE_REFERENCE_COUNT = 415 UK_DATA_REPO = "policyengine-" + "uk-data" FIXTURE_REFERENCE_NAMES = { @@ -212,6 +213,7 @@ def test_uk_target_references_follow_contract_derivation_rules() -> None: assert resource["allowed_value_operations"] == [ "identity", "sum", + "difference", "calendar_year_average", "latest_plateau", "count_x_mean", @@ -239,10 +241,14 @@ def test_uk_target_references_follow_contract_derivation_rules() -> None: assert reference["measure"] == expected_measure assert reference["family"] == target["family"] assert reference["period"] == 2025 - assert reference["metadata"] == { + expected_metadata = { "contract_target_id": contract_target_id, "measure_kind": "prepared_column", } + observation_basis = target["measurement"].get("observation_basis") + if observation_basis is not None: + expected_metadata["observation_basis"] = observation_basis + assert reference["metadata"] == expected_metadata # The measure is a prepared column, so the pointed-to contract binding # must carry what the microcosm#622 materializer needs to prepare it. assert ( @@ -252,6 +258,77 @@ def test_uk_target_references_follow_contract_derivation_rules() -> None: ), contract_target_id +def test_childcare_and_bus_references_compile_with_declared_provenance() -> None: + root = Path(__file__).resolve().parents[3] + feed = root / STABLE_UK_FACT_FEED_NAME + if not feed.is_file(): + pytest.skip("pinned UK Chronicle consumer feed is not present") + + references = [ + reference + for reference in load_country_spec("uk").target_references + if reference.family in {"hmrc_tfc", "dfe_funded_childcare", "dft_local_bus"} + ] + facts = [] + for line in feed.open(): + fact = json.loads(line) + source_name = fact.get("source", {}).get("source_name") or fact.get( + "observed_measure", {} + ).get("source_name") + if source_name in {"hmrc", "dfe", "dft"}: + facts.append(fact) + + registry = compile_ledger_target_references(facts, references, country="uk") + specs = {spec.name: spec for spec in registry.specs} + assert {name: spec.value for name, spec in specs.items()} == { + "hmrc.tfc.government_top_up": 599_800_000.0, + "hmrc.tfc.children_with_used_accounts": 1_151_515.0, + "dfe.funded_childcare.working_parent_children_2_to_4": 621_482.0, + "dfe.funded_childcare.early_learning_2_year_olds": 95_031.0, + "dfe.funded_childcare.universal_only_children": 396_965.0, + "dft.bus_fare_receipts.england": 3_417_388_656.43538, + "dft.bus_net_support.england": 3_024_904_320.8399997, + } + assert { + name: spec.metadata["ledger_entity_name"] for name, spec in specs.items() + } == { + "hmrc.tfc.government_top_up": "government", + "hmrc.tfc.children_with_used_accounts": "person", + "dfe.funded_childcare.working_parent_children_2_to_4": "person", + "dfe.funded_childcare.early_learning_2_year_olds": "person", + "dfe.funded_childcare.universal_only_children": "person", + "dft.bus_fare_receipts.england": "institutional_sector", + "dft.bus_net_support.england": "institutional_sector", + } + assert ( + specs["dfe.funded_childcare.universal_only_children"].metadata[ + "ledger_value_formula" + ] + == "minuend - subtrahend" + ) + + +def test_dfe_extended_sum_refuses_the_suppressed_2024_member() -> None: + root = Path(__file__).resolve().parents[3] + feed = root / STABLE_UK_FACT_FEED_NAME + if not feed.is_file(): + pytest.skip("pinned UK Chronicle consumer feed is not present") + + reference = next( + reference + for reference in load_country_spec("uk").target_references + if reference.name == "dfe.funded_childcare.working_parent_children_2_to_4" + ) + facts = [json.loads(line) for line in feed.open() if '"source_name": "dfe"' in line] + + with pytest.raises(ValueError, match="expected 2 members.*resolved 1"): + compile_ledger_target_references( + facts, + [replace(reference, period=2024)], + country="uk", + ) + + def test_uk_target_references_do_not_bind_known_mismatched_property_amounts() -> None: resource = _load_uk_resource("target_references.json") @@ -423,9 +500,9 @@ 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": 408, + "active": 415, "no_fact_at_or_before_period": 7, - "signed_excluded": 2, + "signed_excluded": 8, } assert membership["genuine_sum_residue"] assert membership["uprating_holds"] diff --git a/packages/microcosm-build/tests/test_uk_terminal_gates.py b/packages/microcosm-build/tests/test_uk_terminal_gates.py index fa78fe628..7fd960622 100644 --- a/packages/microcosm-build/tests/test_uk_terminal_gates.py +++ b/packages/microcosm-build/tests/test_uk_terminal_gates.py @@ -390,13 +390,22 @@ def test_concentrated_qrf_output_fails_by_name() -> None: def test_committed_degenerate_register_is_the_policy_of_record() -> None: register = uk_default_degenerate_reviewed_exclusions() - assert set(register) == {"household.source_year"} + assert set(register) == { + "household.source_year", + "person.tax_free_childcare_spend_routed_share", + } record = register["household.source_year"] assert record.adjudication == "microcosm#630" assert record.approved_by == "juaristi22" assert record.approved_on == "2026-08-10" assert record.expires_on == "2027-02-10" assert record.reason.strip() + routed_share = register["person.tax_free_childcare_spend_routed_share"] + assert routed_share.adjudication == "microcosm#834" + assert routed_share.approved_by == "juaristi22" + assert routed_share.approved_on == "2026-09-05" + assert routed_share.expires_on == "2027-03-05" + assert routed_share.reason.strip() def test_policy_of_record_is_immutable_and_loaded_once() -> None: diff --git a/packages/microcosm-build/tests/test_uk_tfc_routed_share.py b/packages/microcosm-build/tests/test_uk_tfc_routed_share.py new file mode 100644 index 000000000..1e5347afc --- /dev/null +++ b/packages/microcosm-build/tests/test_uk_tfc_routed_share.py @@ -0,0 +1,106 @@ +from __future__ import annotations + +import numpy as np +import pandas as pd +import pytest + +from microcosm.build.country_spec import load_country_spec +from microcosm.build.uk_runtime.frs_person_draws import ( + UKFRSPersonDrawsStageTransform, +) +from microcosm.build.uk_runtime.national_frame import ( + uk_national_frame, + write_uk_national_frame, +) +from microcosm.build.uk_runtime.take_up_contract import load_uk_take_up_contract + +pytestmark = pytest.mark.requires_uk + + +def _frame(): + return uk_national_frame( + person=pd.DataFrame( + { + "person_id": [1], + "person_benunit_id": [1], + "person_household_id": [1], + "age": [3], + "childcare_expenses": [1_000.0], + "tax_free_childcare_uses_qualifying_provider": [True], + "tax_free_childcare_qualifying_child": [True], + "is_disabled_for_benefits": [False], + "is_blind": [False], + } + ), + benunit=pd.DataFrame( + { + "benunit_id": [1], + "tax_free_childcare_eligible": [True], + "tax_free_childcare_eligible_declaration_periods": [4], + } + ), + household=pd.DataFrame( + { + "household_id": [1], + "region": ["LONDON"], + "council_tax": [0.0], + "tenure_type": ["OWNED_OUTRIGHT"], + "rent": [0.0], + } + ), + household_weights=np.array([1.0]), + time_period="2024", + ) + + +def test_engine_and_manifest_define_person_input_contract() -> None: + import policyengine_uk + + variable = policyengine_uk.CountryTaxBenefitSystem().variables[ + "tax_free_childcare_spend_routed_share" + ] + assert variable.entity.key == "person" + assert variable.is_input_variable() + assert variable.default_value == 1 + + spec = load_country_spec("uk") + stage = spec.sources.stage_map()["frs_person_draws"] + assert "tax_free_childcare_spend_routed_share" in stage.outputs + operation = stage.operations[-1] + assert operation.kind == "assign_period_constant" + assert operation.parameters == { + "contract_key": "tax_free_childcare_spend_routed_share", + "dtype": "float64", + "output": "tax_free_childcare_spend_routed_share", + "period_source": "build_year", + } + + +def test_release_h5_round_trip_preserves_routed_share_and_changes_award( + tmp_path, +) -> None: + import policyengine_uk + from policyengine_uk.data import UKSingleYearDataset + + contract = load_uk_take_up_contract() + routed = UKFRSPersonDrawsStageTransform(contract=contract, stage=None)(_frame()) + routed_path = write_uk_national_frame(routed, tmp_path / "routed.h5") + routed_simulation = policyengine_uk.Microsimulation( + dataset=UKSingleYearDataset(file_path=routed_path) + ) + np.testing.assert_allclose( + routed_simulation.calculate("tax_free_childcare_spend_routed_share", 2024), + [0.593], + ) + + default_path = write_uk_national_frame(_frame(), tmp_path / "default.h5") + default_simulation = policyengine_uk.Microsimulation( + dataset=UKSingleYearDataset(file_path=default_path) + ) + routed_award = np.asarray( + routed_simulation.calculate("tax_free_childcare", 2024), dtype=float + ) + default_award = np.asarray( + default_simulation.calculate("tax_free_childcare", 2024), dtype=float + ) + assert routed_award[0] == pytest.approx(default_award[0] * 0.593) diff --git a/packages/microcosm-data/src/microcosm/data/contract.py b/packages/microcosm-data/src/microcosm/data/contract.py index e1c0c6f23..52f58f69f 100644 --- a/packages/microcosm-data/src/microcosm/data/contract.py +++ b/packages/microcosm-data/src/microcosm/data/contract.py @@ -376,13 +376,13 @@ # fingerprint derives from the manifest digest. Editing the spec moves all # three here in the same reviewed change. _UK_GATE_BATTERY_POLICY_SHA256 = ( - "9b489e83111400c2c37345bbe78c9727b738cbffa125e2c378a33cf563d68b7c" + "5a596f72e5412d97d7938864ce44426634f22622655b2a3efcc76aaa4274d485" ) _UK_GATE_BATTERY_GATES_MANIFEST_SHA256 = ( - "6e2e9c02c6b9d253378b3e77827c5c4599767e7f1b2173aa4687b7fffcedd25d" + "9debdfbc78c4f48734c9851ff14fa88f84788d184ae05bb54558c43e82cc6345" ) _UK_GATE_BATTERY_SPEC_FINGERPRINT = ( - "b407d0088534ebfbc438030b3733b7daf2f80902676bd48c33bc2f5345809e30" + "c405d55f92528775565f8f6c9807bc187de42662e71b59132bf0ec3f5d2caae2" ) #: Spec entry id -> the legacy gate name whose observable detail checks #: apply unchanged (the battery re-keys the report by entry id; the gate @@ -537,7 +537,7 @@ # is a vintage pin that moves with every reviewed register edit (the same # tripwire as the policy digest). _UK_GATE_BATTERY_DEGENERATE_EVIDENCE_SHA256 = ( - "d0d024043132fa07c378c393dbe2b24fe99bf19e876bcc39997d2c80cc9bd4f6" + "6f0243bcda09dad26945376230c44ec3cf55d4e417c3a25e29bae8c59bc1a69d" ) @@ -666,10 +666,10 @@ }, "release_cut": { "gates_manifest_sha256": ( - "57311d9aedbf7ba9ebcbe9721a386002f5d27ed77b10a589e3466f2265c3f1ef" + "969fd0f1bd4529006af00c9a7a0cdab76489cfc41b5b3f838670fcab52409188" ), "policy_sha256": ( - "6d6638d38e999e8a8aec8fd72083a31a369dc5be1a1af57569c41e8b423ad39c" + "619dd84ee5748948358a03e2a209f41ab2a170b6dd45ad636a9a47c994d98de0" ), }, } diff --git a/packages/microcosm-data/tests/test_contract.py b/packages/microcosm-data/tests/test_contract.py index 571884c26..7d4f4fbdd 100644 --- a/packages/microcosm-data/tests/test_contract.py +++ b/packages/microcosm-data/tests/test_contract.py @@ -137,16 +137,16 @@ def _trusted_terminal_gate_signing_key(monkeypatch) -> None: UK_GATE_BATTERY_PRODUCER = "microcosm.build.gate_battery" UK_GATE_BATTERY_SIGNING_KEY_ENV = "MICROCOSM_UK_TERMINAL_GATE_SIGNING_KEY" UK_GATE_BATTERY_POLICY_SHA256 = ( - "9b489e83111400c2c37345bbe78c9727b738cbffa125e2c378a33cf563d68b7c" + "5a596f72e5412d97d7938864ce44426634f22622655b2a3efcc76aaa4274d485" ) UK_GATE_BATTERY_GATES_MANIFEST_SHA256 = ( - "6e2e9c02c6b9d253378b3e77827c5c4599767e7f1b2173aa4687b7fffcedd25d" + "9debdfbc78c4f48734c9851ff14fa88f84788d184ae05bb54558c43e82cc6345" ) UK_GATE_BATTERY_SPEC_FINGERPRINT = ( - "b407d0088534ebfbc438030b3733b7daf2f80902676bd48c33bc2f5345809e30" + "c405d55f92528775565f8f6c9807bc187de42662e71b59132bf0ec3f5d2caae2" ) UK_GATE_BATTERY_DEGENERATE_EVIDENCE_SHA256 = ( - "d0d024043132fa07c378c393dbe2b24fe99bf19e876bcc39997d2c80cc9bd4f6" + "6f0243bcda09dad26945376230c44ec3cf55d4e417c3a25e29bae8c59bc1a69d" ) UK_GATE_BATTERY_INPUT_MASS_EVIDENCE_SHA256 = ( "c9211cbb923e13f4850b834b5bdb1ff1de87fe9237c332b5de63f01ed417aa2d" diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/fixture.json b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/fixture.json index f05527ee3..79b49d543 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/fixture.json +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/fixture.json @@ -886,10 +886,18 @@ "survey": "Family Resources Survey 2024-25" }, "frs_person_draws": { - "artifacts": [], + "artifacts": [ + { + "format": "json", + "kind": "public_aggregate_reference", + "resource": "take_up_contract.json", + "role": "stochastic_contract" + } + ], "grain": "person", "nonnegative_outputs": [ - "attends_private_school_random_draw" + "attends_private_school_random_draw", + "tax_free_childcare_spend_routed_share" ], "notes": "Identity-keyed seed 0 streams replace the incumbent sequential take-up seed 100; higher_earner_tie_break is intentionally not produced.", "operations": [ @@ -920,12 +928,20 @@ "kind": "assign_uniform_draw", "output": "attends_private_school_random_draw", "seed": 0 + }, + { + "contract_key": "tax_free_childcare_spend_routed_share", + "dtype": "float64", + "kind": "assign_period_constant", + "output": "tax_free_childcare_spend_routed_share", + "period_source": "build_year" } ], "outputs": [ "would_claim_marriage_allowance", "would_claim_scp", - "attends_private_school_random_draw" + "attends_private_school_random_draw", + "tax_free_childcare_spend_routed_share" ], "rewrites": [], "source": "Sourced UK take-up contract rates and identity-keyed deterministic draws.", diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json index f0794e680..7013d4cf5 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json @@ -1 +1 @@ -{"country":"uk","nodes":[{"base":null,"citation":"","description":"Load the source-bound UK FRS root population.","id":"create_uk_frs","inputs":[],"kernel":"uk.create@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"dfd331a9aba8fd095ebb16250f90cbb5de2ea999874c22fa3bea6a7e33fa83bf","time_period":"2024"},"population":null,"sources":["frs"],"structural":"create","weights":null},{"base":"create_uk_frs","citation":"","description":"Ownership boundary for the source-assembling root stage.","id":"frs_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Claim the cells assembled by the UK FRS root transform.","id":"frs_spine","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{},"population":"frs_spine.boundary","sources":[],"structural":"none","weights":null},{"base":"frs_spine.boundary","citation":"","description":"Ownership boundary before age_tail rewrites.","id":"age_tail.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage age_tail.","id":"age_tail","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["external_child_payments","region"],"entity":"household","rows":"all"},{"columns":["gender"],"entity":"person","rows":"all"}],"kernel":"uk.stage.age_tail@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_employment@1","mass":"conserve","outputs":[{"column":"employment_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_sector","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"sic_industry_division","dtype":"int64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_council_tax.","id":"frs_council_tax","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","sic_industry_division"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_council_tax@1","mass":"conserve","outputs":[{"column":"council_tax","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_disability.","id":"frs_disability","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax","region"],"entity":"household","rows":"all"},{"columns":["afcs_reported","age","attendance_allowance_reported","dla_m_reported","dla_sc_reported","esa_contrib_reported","esa_income_reported","iidb_reported","incapacity_benefit_reported","pip_dl_reported","pip_m_reported","sda_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_disability@1","mass":"conserve","outputs":[{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_disability","stage_contract_sha256":"2d5ed820f9f9fbe4a45a333f5c5e1dfbdfe2b53a055584ada4c44eacb4b58954","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education.","id":"frs_education","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","esa_contrib_reported","esa_income_reported","is_severely_disabled_for_benefits","jsa_contrib_reported","jsa_income_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education@1","mass":"conserve","outputs":[{"column":"current_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"highest_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_non_advanced_education","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_approved_training","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"age_started_or_accepted_current_education_or_training","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_before_universal_credit_qualifying_young_person_terminal_date","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"adult_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"receives_benefits_in_own_right","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_legacy_proxies.","id":"frs_legacy_proxies","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_legacy_proxies@1","mass":"conserve","outputs":[{"column":"legacy_jobseeker_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_health_condition_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_support_group_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_legacy_proxies","stage_contract_sha256":"1ecf761cf3fa7180da15659e138e67a8654e58272b4fde28344aa27a874ad0aa","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"age_tail.boundary","citation":"","description":"Ownership boundary before frs_education_grant_split rewrites.","id":"frs_education_grant_split.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education_grant_split.","id":"frs_education_grant_split","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education_grant_split@1","mass":"conserve","outputs":[{"column":"disabled_students_allowance_eligible_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"frs_education_grant_split","stage_contract_sha256":"6f0fcfa6a1aa614f7ccefe39364b4ebd208c9a4ed081f7618e026b2e87f152fa","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","child_benefit_reported","education_grants","pension_credit_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_child_benefit","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"child_benefit_opts_out","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_tfc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_extended_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_universal_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_targeted_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"frs_take_up","stage_contract_sha256":"d10ca01bfa5d719640ded8e62196b0692236d3be0a2417899deeefd241088abf","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_person_draws.","id":"frs_person_draws","inputs":[{"columns":["frs_benunit_capital","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_person_draws@1","mass":"conserve","outputs":[{"column":"would_claim_marriage_allowance","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"would_claim_scp","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"attends_private_school_random_draw","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_person_draws","stage_contract_sha256":"1543fd39f943d628d224adf8a31d5379d4f498d3f3861e67ec26981a24e76d20","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_household_draws.","id":"frs_household_draws","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","attends_private_school_random_draw"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_household_draws@1","mass":"conserve","outputs":[{"column":"household_owns_tv","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"would_evade_tv_licence_fee","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residential_property_purchased_is_first_home","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"property_purchased","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_brma.","id":"frs_brma","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_brma@1","mass":"conserve","outputs":[{"column":"brma","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_brma","stage_contract_sha256":"5b8f0b361310c7cd3efbaae3762b347649b7d4afb9e9943131d9bef9266fc3c8","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"frs_education_grant_split.boundary","citation":"","description":"Freeze the assembled-spine gate population.","id":"frs_brma.checkpoint","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage was_wealth.","id":"was_wealth","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_wealth@1","mass":"conserve","outputs":[{"column":"owned_land","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"corporate_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"private_pension_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gross_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"net_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"other_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"non_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"savings","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"num_vehicles","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cash_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"stocks_and_shares_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"consumer_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"student_loan_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"was_wealth","stage_contract_sha256":"c499dcb7c49a0176229dbc363b400415cb5c1da44af266ba2155f9a62a0bd2ed","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"base":"frs_brma.checkpoint","citation":"","description":"Ownership boundary before regional_property_uprating rewrites.","id":"regional_property_uprating.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage regional_property_uprating.","id":"regional_property_uprating","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.regional_property_uprating@1","mass":"conserve","outputs":[{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"regional_property_uprating","stage_contract_sha256":"4304356c6c5ba91a04883148cbf9078761ee926c8387aadb6c15b6b70ebb31f6","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage lcfs_consumption.","id":"lcfs_consumption","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.lcfs_consumption@1","mass":"conserve","outputs":[{"column":"food_and_non_alcoholic_beverages_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"alcohol_and_tobacco_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"clothing_and_footwear_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_water_and_electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_furnishings_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"health_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"transport_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"communication_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"recreation_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"education_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"restaurants_and_hotels_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"miscellaneous_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"petrol_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"diesel_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_fare_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_energy_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gas_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"has_fuel_consumption","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"lcfs_consumption","stage_contract_sha256":"eb0a529c357c84290a001209a18c5a43b0a0310553c77963d6842fd0111b73ad","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_vat.","id":"etb_vat","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_vat@1","mass":"conserve","outputs":[{"column":"full_rate_vat_expenditure_rate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"etb_vat","stage_contract_sha256":"99a6756256adfe8255672fafda89710c08ae56bd2b8f011b20c3b8381eabfa1e","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_services.","id":"etb_services","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_services@1","mass":"conserve","outputs":[{"column":"dfe_education_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_usage","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"a_and_e_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"admitted_patient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"outpatient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_a_and_e_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_admitted_patient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_outpatient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"etb_services","stage_contract_sha256":"48294c9d86dd422238a723aca5845e9ceb9eda2903a3bb87bb32a86092447e19","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_hmrc_spine_leaves.","id":"frs_hmrc_spine_leaves","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_hmrc_spine_leaves@1","mass":"conserve","outputs":[{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ossben_identifiable_subset","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"srp_regular_code5","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","citation":"","description":"Run structural UK stage spi_support_channel.","id":"spi_support_channel","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_support_channel@1","mass":"declared","outputs":[],"params":{"expand_cells":[["person","person_source_id","int64"],["person","person_support_channel","string"],["person","person_support_clone_index","int64"],["benunit","benunit_source_id","int64"],["benunit","benunit_support_channel","string"],["benunit","benunit_support_clone_index","int64"],["household","source_household_id","int64"],["household","source_year","int64"],["household","source_household_key","string"],["household","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"spi_support_channel","stage_contract_sha256":"4b10f1a4a215cdf2c406c9974de2d1e580eb3cd3a25ed34973c1b63abf4a54bb","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_support_channel.","id":"spi_support_channel.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"source_household_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_year","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_household_key","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["person.person_source_id","person.person_support_channel","person.person_support_clone_index","benunit.benunit_source_id","benunit.benunit_support_channel","benunit.benunit_support_clone_index","household.source_household_id","household.source_year","household.source_household_key","household.household_source_id","household.household_support_channel","household.household_support_clone_index","household.household_is_spi_synthetic"]},"population":"spi_support_channel","sources":[],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_spi_income_spine.","id":"hmrc_spi_income_spine","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","maintenance_expenses","childcare_expenses","salary_sacrifice_reported","salary_sacrifice_asked","ssmg_reported","incapacity_benefit_reported","employment_status","employment_sector","sic_industry_division","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_spi_income_spine@1","mass":"conserve","outputs":[{"column":"charitable_investment_gifts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"gift_aid","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_benefits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_social_security_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_taxable_termination_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_miscellaneous_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_state_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employed_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_earned_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_assessable_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_spi_income_spine","stage_contract_sha256":"3db4e7361ea871ca57b52aafce48209409d7b59d836ed973eee946b5657a771a","time_period":"2024"},"population":"spi_support_channel","sources":["frs"],"structural":"none","weights":null},{"base":"spi_support_channel","citation":"","description":"Ownership boundary before uc_reporter_redraw rewrites.","id":"uc_reporter_redraw.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_reporter_redraw.","id":"uc_reporter_redraw","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_reporter_redraw@1","mass":"conserve","outputs":[{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_reporter_redraw","stage_contract_sha256":"23a23df85489708d15c7c0be3d1339ff5e1fe0932abaea0f95fcbf9c6d368205","time_period":"2024"},"population":"uc_reporter_redraw.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_reporter_redraw.boundary","citation":"","description":"Ownership boundary before uc_capital_coherence rewrites.","id":"uc_capital_coherence.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_capital_coherence.","id":"uc_capital_coherence","inputs":[{"columns":["benunit_support_channel","dependent_children","is_married"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","person_support_channel","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_capital_coherence@1","mass":"conserve","outputs":[{"column":"uc_reported_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_capital_coherence","stage_contract_sha256":"64024e4ca8659cad2452abe5578071cf8226e693f3cb975cf4778078bf8baf17","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_uc"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_deduction_attributes@1","mass":"conserve","outputs":[{"column":"uc_deduction_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_type_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_latent_deduction_rate","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_combination","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_incidence_clone.","id":"cgt_incidence_clone","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_clone@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_capital_gains_clone","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_incidence_clone","stage_contract_sha256":"ee30278543cc0297a5366d855b7753aa04af5518971594c193c52be36bf8a7b4","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_incidence_clone.","id":"cgt_incidence_clone.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_capital_gains_clone","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_capital_gains_clone","person.capital_gains"]},"population":"cgt_incidence_clone","sources":[],"structural":"none","weights":null},{"base":"cgt_incidence_clone","citation":"","description":"Run structural UK stage cgt_band_donors.","id":"cgt_band_donors","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_band_donors@1","mass":"free","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_band_donor","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_band_donors","stage_contract_sha256":"e10e10c49c0ca2a6a65048c91b683f818e8b6e207a6c6f57a20d76ea299160b0","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_band_donors.","id":"cgt_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_band_donor"]},"population":"cgt_band_donors","sources":[],"structural":"none","weights":null},{"base":"cgt_band_donors","citation":"","description":"Ownership boundary before hmrc_cgt_gains_spine rewrites.","id":"hmrc_cgt_gains_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_gains_spine.","id":"hmrc_cgt_gains_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","tax_free_savings_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_gains_spine@1","mass":"conserve","outputs":[{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"20ada8d8ee94400bd160223e865a910db7aff9c40a7f0c8ee8ca8c40ed901b72","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage salary_sacrifice.","id":"salary_sacrifice","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.salary_sacrifice@1","mass":"conserve","outputs":[{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"salary_sacrifice","stage_contract_sha256":"a4af925af21cc6766eb7c8855b6743a3aa4eeeb38df12cfc83063d7ad6890539","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage student_loans.","id":"student_loans","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","current_education","employee_pension_contributions","highest_education","student_loan_repayments","student_loans"],"entity":"person","rows":"all"}],"kernel":"uk.stage.student_loans@1","mass":"conserve","outputs":[{"column":"student_loan_plan","dtype":"string","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"student_loans","stage_contract_sha256":"7c4c76398c2e80b41c7f941a5f06246b57d89b5eb0c36d42e3116ac35e82e203","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} +{"country":"uk","nodes":[{"base":null,"citation":"","description":"Load the source-bound UK FRS root population.","id":"create_uk_frs","inputs":[],"kernel":"uk.create@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"dfd331a9aba8fd095ebb16250f90cbb5de2ea999874c22fa3bea6a7e33fa83bf","time_period":"2024"},"population":null,"sources":["frs"],"structural":"create","weights":null},{"base":"create_uk_frs","citation":"","description":"Ownership boundary for the source-assembling root stage.","id":"frs_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Claim the cells assembled by the UK FRS root transform.","id":"frs_spine","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{},"population":"frs_spine.boundary","sources":[],"structural":"none","weights":null},{"base":"frs_spine.boundary","citation":"","description":"Ownership boundary before age_tail rewrites.","id":"age_tail.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage age_tail.","id":"age_tail","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["external_child_payments","region"],"entity":"household","rows":"all"},{"columns":["gender"],"entity":"person","rows":"all"}],"kernel":"uk.stage.age_tail@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_employment@1","mass":"conserve","outputs":[{"column":"employment_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_sector","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"sic_industry_division","dtype":"int64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_council_tax.","id":"frs_council_tax","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","sic_industry_division"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_council_tax@1","mass":"conserve","outputs":[{"column":"council_tax","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_disability.","id":"frs_disability","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax","region"],"entity":"household","rows":"all"},{"columns":["afcs_reported","age","attendance_allowance_reported","dla_m_reported","dla_sc_reported","esa_contrib_reported","esa_income_reported","iidb_reported","incapacity_benefit_reported","pip_dl_reported","pip_m_reported","sda_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_disability@1","mass":"conserve","outputs":[{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_disability","stage_contract_sha256":"2d5ed820f9f9fbe4a45a333f5c5e1dfbdfe2b53a055584ada4c44eacb4b58954","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education.","id":"frs_education","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","esa_contrib_reported","esa_income_reported","is_severely_disabled_for_benefits","jsa_contrib_reported","jsa_income_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education@1","mass":"conserve","outputs":[{"column":"current_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"highest_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_non_advanced_education","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_approved_training","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"age_started_or_accepted_current_education_or_training","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_before_universal_credit_qualifying_young_person_terminal_date","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"adult_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"receives_benefits_in_own_right","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_legacy_proxies.","id":"frs_legacy_proxies","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_legacy_proxies@1","mass":"conserve","outputs":[{"column":"legacy_jobseeker_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_health_condition_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_support_group_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_legacy_proxies","stage_contract_sha256":"1ecf761cf3fa7180da15659e138e67a8654e58272b4fde28344aa27a874ad0aa","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"age_tail.boundary","citation":"","description":"Ownership boundary before frs_education_grant_split rewrites.","id":"frs_education_grant_split.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education_grant_split.","id":"frs_education_grant_split","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education_grant_split@1","mass":"conserve","outputs":[{"column":"disabled_students_allowance_eligible_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"frs_education_grant_split","stage_contract_sha256":"6f0fcfa6a1aa614f7ccefe39364b4ebd208c9a4ed081f7618e026b2e87f152fa","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","child_benefit_reported","education_grants","pension_credit_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_child_benefit","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"child_benefit_opts_out","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_tfc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_extended_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_universal_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_targeted_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"frs_take_up","stage_contract_sha256":"d10ca01bfa5d719640ded8e62196b0692236d3be0a2417899deeefd241088abf","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_person_draws.","id":"frs_person_draws","inputs":[{"columns":["frs_benunit_capital","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_person_draws@1","mass":"conserve","outputs":[{"column":"would_claim_marriage_allowance","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"would_claim_scp","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"attends_private_school_random_draw","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"tax_free_childcare_spend_routed_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_person_draws","stage_contract_sha256":"9c299a6cf69ac771667ee3e3105637ff87cd780a423db805f9002352b2f1005f","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_household_draws.","id":"frs_household_draws","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_household_draws@1","mass":"conserve","outputs":[{"column":"household_owns_tv","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"would_evade_tv_licence_fee","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residential_property_purchased_is_first_home","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"property_purchased","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_brma.","id":"frs_brma","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_brma@1","mass":"conserve","outputs":[{"column":"brma","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_brma","stage_contract_sha256":"5b8f0b361310c7cd3efbaae3762b347649b7d4afb9e9943131d9bef9266fc3c8","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"frs_education_grant_split.boundary","citation":"","description":"Freeze the assembled-spine gate population.","id":"frs_brma.checkpoint","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage was_wealth.","id":"was_wealth","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_wealth@1","mass":"conserve","outputs":[{"column":"owned_land","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"corporate_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"private_pension_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gross_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"net_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"other_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"non_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"savings","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"num_vehicles","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cash_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"stocks_and_shares_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"consumer_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"student_loan_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"was_wealth","stage_contract_sha256":"c499dcb7c49a0176229dbc363b400415cb5c1da44af266ba2155f9a62a0bd2ed","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"base":"frs_brma.checkpoint","citation":"","description":"Ownership boundary before regional_property_uprating rewrites.","id":"regional_property_uprating.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage regional_property_uprating.","id":"regional_property_uprating","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.regional_property_uprating@1","mass":"conserve","outputs":[{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"regional_property_uprating","stage_contract_sha256":"4304356c6c5ba91a04883148cbf9078761ee926c8387aadb6c15b6b70ebb31f6","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage lcfs_consumption.","id":"lcfs_consumption","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.lcfs_consumption@1","mass":"conserve","outputs":[{"column":"food_and_non_alcoholic_beverages_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"alcohol_and_tobacco_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"clothing_and_footwear_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_water_and_electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_furnishings_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"health_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"transport_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"communication_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"recreation_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"education_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"restaurants_and_hotels_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"miscellaneous_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"petrol_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"diesel_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_fare_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_energy_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gas_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"has_fuel_consumption","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"lcfs_consumption","stage_contract_sha256":"eb0a529c357c84290a001209a18c5a43b0a0310553c77963d6842fd0111b73ad","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_vat.","id":"etb_vat","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_vat@1","mass":"conserve","outputs":[{"column":"full_rate_vat_expenditure_rate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"etb_vat","stage_contract_sha256":"99a6756256adfe8255672fafda89710c08ae56bd2b8f011b20c3b8381eabfa1e","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_services.","id":"etb_services","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_services@1","mass":"conserve","outputs":[{"column":"dfe_education_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_usage","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"a_and_e_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"admitted_patient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"outpatient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_a_and_e_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_admitted_patient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_outpatient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"etb_services","stage_contract_sha256":"48294c9d86dd422238a723aca5845e9ceb9eda2903a3bb87bb32a86092447e19","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_hmrc_spine_leaves.","id":"frs_hmrc_spine_leaves","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_hmrc_spine_leaves@1","mass":"conserve","outputs":[{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ossben_identifiable_subset","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"srp_regular_code5","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","citation":"","description":"Run structural UK stage spi_support_channel.","id":"spi_support_channel","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_support_channel@1","mass":"declared","outputs":[],"params":{"expand_cells":[["person","person_source_id","int64"],["person","person_support_channel","string"],["person","person_support_clone_index","int64"],["benunit","benunit_source_id","int64"],["benunit","benunit_support_channel","string"],["benunit","benunit_support_clone_index","int64"],["household","source_household_id","int64"],["household","source_year","int64"],["household","source_household_key","string"],["household","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"spi_support_channel","stage_contract_sha256":"4b10f1a4a215cdf2c406c9974de2d1e580eb3cd3a25ed34973c1b63abf4a54bb","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_support_channel.","id":"spi_support_channel.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"source_household_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_year","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_household_key","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["person.person_source_id","person.person_support_channel","person.person_support_clone_index","benunit.benunit_source_id","benunit.benunit_support_channel","benunit.benunit_support_clone_index","household.source_household_id","household.source_year","household.source_household_key","household.household_source_id","household.household_support_channel","household.household_support_clone_index","household.household_is_spi_synthetic"]},"population":"spi_support_channel","sources":[],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_spi_income_spine.","id":"hmrc_spi_income_spine","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","maintenance_expenses","childcare_expenses","salary_sacrifice_reported","salary_sacrifice_asked","ssmg_reported","incapacity_benefit_reported","employment_status","employment_sector","sic_industry_division","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_spi_income_spine@1","mass":"conserve","outputs":[{"column":"charitable_investment_gifts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"gift_aid","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_benefits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_social_security_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_taxable_termination_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_miscellaneous_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_state_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employed_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_earned_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_assessable_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_spi_income_spine","stage_contract_sha256":"3db4e7361ea871ca57b52aafce48209409d7b59d836ed973eee946b5657a771a","time_period":"2024"},"population":"spi_support_channel","sources":["frs"],"structural":"none","weights":null},{"base":"spi_support_channel","citation":"","description":"Ownership boundary before uc_reporter_redraw rewrites.","id":"uc_reporter_redraw.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_reporter_redraw.","id":"uc_reporter_redraw","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_reporter_redraw@1","mass":"conserve","outputs":[{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_reporter_redraw","stage_contract_sha256":"23a23df85489708d15c7c0be3d1339ff5e1fe0932abaea0f95fcbf9c6d368205","time_period":"2024"},"population":"uc_reporter_redraw.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_reporter_redraw.boundary","citation":"","description":"Ownership boundary before uc_capital_coherence rewrites.","id":"uc_capital_coherence.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_capital_coherence.","id":"uc_capital_coherence","inputs":[{"columns":["benunit_support_channel","dependent_children","is_married"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","person_support_channel","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_capital_coherence@1","mass":"conserve","outputs":[{"column":"uc_reported_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_capital_coherence","stage_contract_sha256":"64024e4ca8659cad2452abe5578071cf8226e693f3cb975cf4778078bf8baf17","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_uc"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_deduction_attributes@1","mass":"conserve","outputs":[{"column":"uc_deduction_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_type_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_latent_deduction_rate","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_combination","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_incidence_clone.","id":"cgt_incidence_clone","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_clone@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_capital_gains_clone","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_incidence_clone","stage_contract_sha256":"ee30278543cc0297a5366d855b7753aa04af5518971594c193c52be36bf8a7b4","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_incidence_clone.","id":"cgt_incidence_clone.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_capital_gains_clone","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_capital_gains_clone","person.capital_gains"]},"population":"cgt_incidence_clone","sources":[],"structural":"none","weights":null},{"base":"cgt_incidence_clone","citation":"","description":"Run structural UK stage cgt_band_donors.","id":"cgt_band_donors","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_band_donors@1","mass":"free","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_band_donor","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_band_donors","stage_contract_sha256":"e10e10c49c0ca2a6a65048c91b683f818e8b6e207a6c6f57a20d76ea299160b0","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_band_donors.","id":"cgt_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_band_donor"]},"population":"cgt_band_donors","sources":[],"structural":"none","weights":null},{"base":"cgt_band_donors","citation":"","description":"Ownership boundary before hmrc_cgt_gains_spine rewrites.","id":"hmrc_cgt_gains_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_gains_spine.","id":"hmrc_cgt_gains_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","tax_free_savings_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_gains_spine@1","mass":"conserve","outputs":[{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"20ada8d8ee94400bd160223e865a910db7aff9c40a7f0c8ee8ca8c40ed901b72","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage salary_sacrifice.","id":"salary_sacrifice","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.salary_sacrifice@1","mass":"conserve","outputs":[{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"salary_sacrifice","stage_contract_sha256":"a4af925af21cc6766eb7c8855b6743a3aa4eeeb38df12cfc83063d7ad6890539","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage student_loans.","id":"student_loans","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","current_education","employee_pension_contributions","highest_education","student_loan_repayments","student_loans"],"entity":"person","rows":"all"}],"kernel":"uk.stage.student_loans@1","mass":"conserve","outputs":[{"column":"student_loan_plan","dtype":"string","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"student_loans","stage_contract_sha256":"7c4c76398c2e80b41c7f941a5f06246b57d89b5eb0c36d42e3116ac35e82e203","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} diff --git a/tools/fit_uk_childcare_takeup.py b/tools/fit_uk_childcare_takeup.py index 1519faa30..25f883125 100644 --- a/tools/fit_uk_childcare_takeup.py +++ b/tools/fit_uk_childcare_takeup.py @@ -1,171 +1,318 @@ -"""Fit UK childcare take-up rates from a local enhanced-FRS H5.""" +"""Fit four UK childcare take-up rates against the declared target registry.""" from __future__ import annotations import argparse import hashlib import json -from collections.abc import Callable +from collections.abc import Callable, Mapping from datetime import UTC, datetime from pathlib import Path +from typing import Any import numpy as np from scipy.optimize import minimize -TOOL_VERSION = 1 -TARGETS = { - "spending": { - "tfc": 0.63, - "extended": 2.5, - "targeted": 0.6, - "universal": 1.7, - }, - "caseload": { - "tfc": 985, - "extended": 740, - "targeted": 130, - "universal": 490, - }, -} -TARGET_CITATIONS = { - "tfc": "HMRC Tax-Free Childcare statistics, June 2025 release.", - "other_childcare": ( - "Department for Education dedicated schools grant national funding " - "allocations, 2024 to 2025." - ), -} -INITIAL_PARAMS = np.array([0.5, 0.5, 0.5, 0.5, 15.0, 5.0], dtype=float) -BOUNDS = ((0, 1), (0, 1), (0, 1), (0, 1), (5.0, 30.0), (1.0, 10.0)) +from microcosm.build.country_spec import load_country_spec +from microcosm.build.ledger_artifact import load_ledger_consumer_artifact +from microcosm.build.ledger_targets import ( + LedgerTargetReference, + compile_ledger_target_references, +) +from microcosm.build.stochastic_assignment import ( + clipped_normal_from_uniforms, + stable_identity_uniforms, +) +from microcosm.build.uk_runtime.ledger_targets import _candidate_facts_for_reference +from microcosm.build.uk_runtime.take_up_contract import ( + UKTakeUpContract, + load_uk_take_up_contract, +) +from microcosm.calibrate import TargetRegistry +TOOL_VERSION = 2 +TARGET_IDS = ( + "hmrc.tfc.government_top_up", + "hmrc.tfc.children_with_used_accounts", + "dfe.funded_childcare.working_parent_children_2_to_4", + "dfe.funded_childcare.early_learning_2_year_olds", + "dfe.funded_childcare.universal_only_children", +) +RATE_KEYS = ( + "tax_free_childcare", + "extended_childcare", + "targeted_childcare", + "universal_childcare", +) +INITIAL_PARAMS = np.array([0.88, 0.812, 0.597, 0.563], dtype=float) +BOUNDS = ((0.0, 1.0),) * 4 SimulationRunner = Callable[ - [Path, np.ndarray, int], tuple[dict[str, float], dict[str, float]] + [Path, np.ndarray, int, int, UKTakeUpContract], Mapping[str, float] ] def draw_childcare_inputs( - benunit_count: int, params: np.ndarray, *, seed: int + benunit_ids: np.ndarray, + params: np.ndarray, + *, + seed: int, + contract: UKTakeUpContract, ) -> dict[str, np.ndarray]: - """Generate seeded childcare inputs without touching numpy global state.""" - - rng = np.random.default_rng(seed) - tfc, extended, targeted, universal, hours_mean, hours_sd = params - return { - "would_claim_tfc": rng.random(benunit_count) < tfc, - "would_claim_extended_childcare": rng.random(benunit_count) < extended, - "would_claim_targeted_childcare": rng.random(benunit_count) < targeted, - "would_claim_universal_childcare": rng.random(benunit_count) < universal, - "maximum_extended_childcare_hours_usage": np.clip( - rng.normal(hours_mean, hours_sd, benunit_count), 0, 30 + """Generate identity-keyed flags while holding the hours distribution fixed.""" + ids = np.asarray(benunit_ids) + if np.asarray(params).shape != (4,): + raise ValueError("childcare fitter accepts exactly four take-up rates") + outputs = {} + names = ( + "would_claim_tfc", + "would_claim_extended_childcare", + "would_claim_targeted_childcare", + "would_claim_universal_childcare", + ) + for output, rate in zip(names, params, strict=True): + outputs[output] = stable_identity_uniforms(ids, seed=seed, salt=output) < float( + rate + ) + hours = contract.continuous_entry("maximum_extended_childcare_hours_usage") + outputs["maximum_extended_childcare_hours_usage"] = clipped_normal_from_uniforms( + stable_identity_uniforms( + ids, seed=seed, salt="maximum_extended_childcare_hours_usage" ), + mean=float(hours["mean"]), + sd=float(hours["sd"]), + lower=float(hours["lower"]), + upper=float(hours["upper"]), + ) + return outputs + + +def compile_childcare_targets( + facts: tuple[Mapping[str, Any], ...], + *, + target_period: int, + vintage_overrides: Mapping[str, int], +) -> TargetRegistry: + """Compile only the five declared childcare rows, with explicit overrides.""" + references = { + r.name: r + for r in load_country_spec("uk").target_references + if r.name in TARGET_IDS } + missing = sorted(set(TARGET_IDS) - references.keys()) + if missing: + raise ValueError(f"childcare target declarations are missing: {missing}") + unknown = sorted(set(vintage_overrides) - set(TARGET_IDS)) + if unknown: + raise ValueError(f"unknown childcare vintage override target ids: {unknown}") + specs = [] + for target_id in TARGET_IDS: + reference = references[target_id] + period = vintage_overrides.get(target_id, target_period) + restamped = LedgerTargetReference(**{**reference.__dict__, "period": period}) + compiled = compile_ledger_target_references( + _candidate_facts_for_reference(facts, restamped), [restamped], country="uk" + ) + if len(compiled.specs) != 1: + raise ValueError(f"{target_id} did not compile to exactly one target") + specs.append(compiled.specs[0]) + return TargetRegistry(specs, country="uk") def fit_childcare_takeup( input_h5: Path, *, + ledger_facts: Path | None = None, + ledger_facts_sha256: str | None = None, + target_period: int = 2024, + vintage_overrides: Mapping[str, int] | None = None, seed: int = 42, maxiter: int = 5, + eps: float = 1e-2, runner: SimulationRunner | None = None, generated_at: str | None = None, + targets: Mapping[str, float] | None = None, + registry_version: str | None = None, ) -> dict[str, object]: - """Fit rates and return a deterministic receipt payload.""" - + """Fit rates and return a deterministic, provenance-complete receipt.""" + contract = load_uk_take_up_contract() + overrides = dict(vintage_overrides or {}) + if targets is None: + if ledger_facts is None: + raise ValueError("--ledger-facts is required to compile childcare targets") + artifact = load_ledger_consumer_artifact( + ledger_facts, expected_facts_sha256=ledger_facts_sha256 + ) + registry = compile_childcare_targets( + artifact.facts, target_period=target_period, vintage_overrides=overrides + ) + targets = {spec.name: float(spec.value) for spec in registry.specs} + registry_version = registry.version + feed_sha256 = artifact.facts_sha256 + target_metadata = { + spec.name: { + "declared_value": spec.value, + "period": spec.period, + "family": spec.family, + "source": spec.source, + } + for spec in registry.specs + } + else: + if set(targets) != set(TARGET_IDS): + raise ValueError( + "childcare targets must contain exactly the five target ids" + ) + feed_sha256 = ledger_facts_sha256 or "test-injected" + registry_version = registry_version or "test-injected" + target_metadata = { + name: {"declared_value": value, "period": target_period} + for name, value in targets.items() + } runner = runner or _policyengine_runner def objective(params: np.ndarray) -> float: - spending, caseload = runner(input_h5, params, seed) - loss = 0.0 - for key, target in TARGETS["spending"].items(): - loss += (spending[key] / target - 1) ** 2 - for key, target in TARGETS["caseload"].items(): - loss += (caseload[key] / target - 1) ** 2 - return float(loss) + achieved = runner(input_h5, params, seed, target_period, contract) + return float( + sum( + (float(achieved[name]) / float(targets[name]) - 1) ** 2 + for name in TARGET_IDS + ) + ) result = minimize( objective, INITIAL_PARAMS, bounds=BOUNDS, method="L-BFGS-B", - options={"maxiter": maxiter, "eps": 1e-2}, + options={"maxiter": maxiter, "eps": eps}, ) - spending, caseload = runner(input_h5, result.x, seed) + achieved = dict(runner(input_h5, result.x, seed, target_period, contract)) + from importlib.metadata import version + return { "tool": "fit_uk_childcare_takeup", "tool_version": TOOL_VERSION, "input_h5": str(input_h5), "input_sha256": _sha256(input_h5), "seed": seed, - "generated_at": generated_at - if generated_at is not None - else datetime.now(UTC).date().isoformat(), + "generated_at": generated_at or datetime.now(UTC).date().isoformat(), + "model_period": target_period, + "vintage_overrides": overrides, + "ledger_facts_sha256": feed_sha256, + "target_registry_version": registry_version, + "stochastic_contract_sha256": contract.resource_sha256, + "engine_version": version("policyengine-uk"), "optimizer": { "method": "L-BFGS-B", "maxiter": maxiter, + "eps": float(eps), "success": bool(result.success), "loss": float(result.fun), }, - "params": { - "tax_free_childcare": float(result.x[0]), - "extended_childcare": float(result.x[1]), - "targeted_childcare": float(result.x[2]), - "universal_childcare": float(result.x[3]), - "extended_hours_mean": float(result.x[4]), - "extended_hours_sd": float(result.x[5]), + "params": dict(zip(RATE_KEYS, map(float, result.x), strict=True)), + "targets": target_metadata, + "achieved": { + name: { + "value": float(achieved[name]), + "target": float(targets[name]), + "ratio": float(achieved[name]) / float(targets[name]), + } + for name in TARGET_IDS }, - "targets": TARGETS, - "target_citations": TARGET_CITATIONS, - "fitted": {"spending": spending, "caseload": caseload}, } +def _policyengine_runner( + input_h5: Path, + params: np.ndarray, + seed: int, + target_period: int, + contract: UKTakeUpContract, +) -> Mapping[str, float]: + from policyengine_uk import Microsimulation + + sim = Microsimulation(dataset=str(input_h5)) + benunit_ids = np.asarray(sim.calculate("benunit_id", target_period)) + for variable, values in draw_childcare_inputs( + benunit_ids, params, seed=seed, contract=contract + ).items(): + sim.set_input(variable, target_period, values) + person_count = np.asarray(sim.calculate("person_id", target_period)).shape[0] + sim.set_input( + "tax_free_childcare_spend_routed_share", + target_period, + np.full( + person_count, + contract.rate("tax_free_childcare_spend_routed_share", target_period), + ), + ) + return { + "hmrc.tfc.government_top_up": float( + sim.calculate("tax_free_childcare", target_period).sum() + ), + "hmrc.tfc.children_with_used_accounts": float( + sim.calculate("is_child_receiving_tax_free_childcare", target_period).sum() + ), + "dfe.funded_childcare.working_parent_children_2_to_4": float( + ( + sim.calculate("is_child_receiving_extended_childcare", target_period) + & (sim.calculate("age", target_period) >= 2) + ).sum() + ), + "dfe.funded_childcare.early_learning_2_year_olds": float( + sim.calculate("is_child_receiving_targeted_childcare", target_period).sum() + ), + "dfe.funded_childcare.universal_only_children": float( + sim.calculate("is_child_receiving_universal_childcare", target_period).sum() + ), + } + + +def _parse_overrides(values: list[str]) -> dict[str, int]: + result = {} + for value in values: + target_id, separator, period = value.partition("=") + if not separator: + raise ValueError("--vintage-override must be target_id=period") + result[target_id] = int(period) + return result + + def main() -> None: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--enhanced-frs-h5", type=Path, required=True) + parser.add_argument("--ledger-facts", type=Path, required=True) + parser.add_argument("--ledger-facts-sha256", required=True) + parser.add_argument("--target-period", type=int, default=2024) + parser.add_argument("--vintage-override", action="append", default=[]) parser.add_argument("--output", type=Path, required=True) parser.add_argument("--seed", type=int, default=42) parser.add_argument("--maxiter", type=int, default=5) + parser.add_argument( + "--eps", + type=float, + default=1e-2, + help=( + "Finite-difference step for L-BFGS-B on the four rates. The draws " + "are identity-keyed thresholds, so a step smaller than one over the " + "eligible base flips no unit and reads as a zero gradient; the " + "targeted 2-year-old base is a few hundred sample children." + ), + ) args = parser.parse_args() receipt = fit_childcare_takeup( - args.enhanced_frs_h5, seed=args.seed, maxiter=args.maxiter + args.enhanced_frs_h5, + ledger_facts=args.ledger_facts, + ledger_facts_sha256=args.ledger_facts_sha256, + target_period=args.target_period, + vintage_overrides=_parse_overrides(args.vintage_override), + seed=args.seed, + maxiter=args.maxiter, + eps=args.eps, ) args.output.write_text(json.dumps(receipt, indent=2, sort_keys=True) + "\n") -def _policyengine_runner( - input_h5: Path, params: np.ndarray, seed: int -) -> tuple[dict[str, float], dict[str, float]]: - from policyengine_uk import Microsimulation - - sim = Microsimulation(dataset=str(input_h5)) - benunit_count = sim.calculate("benunit_id").values.shape[0] - for variable, values in draw_childcare_inputs( - benunit_count, params, seed=seed - ).items(): - sim.set_input(variable, 2024, values) - df = sim.calculate_dataframe( - [ - "is_child_receiving_tax_free_childcare", - "is_child_receiving_extended_childcare", - "is_child_receiving_universal_childcare", - "is_child_receiving_targeted_childcare", - ], - 2024, - ) - spending = { - "tfc": sim.calculate("tax_free_childcare", 2024).sum() / 1e9, - "extended": sim.calculate("extended_childcare_entitlement", 2024).sum() / 1e9, - "targeted": sim.calculate("targeted_childcare_entitlement", 2024).sum() / 1e9, - "universal": sim.calculate("universal_childcare_entitlement", 2024).sum() / 1e9, - } - caseload = { - "tfc": df["is_child_receiving_tax_free_childcare"].sum() / 1e3, - "extended": df["is_child_receiving_extended_childcare"].sum() / 1e3, - "universal": df["is_child_receiving_universal_childcare"].sum() / 1e3, - "targeted": df["is_child_receiving_targeted_childcare"].sum() / 1e3, - } - return spending, caseload - - def _sha256(path: Path) -> str: digest = hashlib.sha256() with path.open("rb") as handle: diff --git a/tools/generate_uk_target_references.py b/tools/generate_uk_target_references.py index 73d8da5d6..e921b8685 100644 --- a/tools/generate_uk_target_references.py +++ b/tools/generate_uk_target_references.py @@ -63,20 +63,6 @@ _UK_DATA_REPO = "policyengine-" + "uk-data" -PROPERTY_INCOME_SIGNED_EXCLUSION_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 " - f"trace is {_UK_DATA_REPO} PR #311 / issue {_UK_DATA_REPO}#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." -) - - DESCRIPTION = ( "UK active-subset Ledger target references for the FRS 2024-25 line. " "Rows are generated from the national rows in uk_population_targets.json: " @@ -102,6 +88,7 @@ def main() -> None: json.loads(args.contract.read_text()), allowed_levels=NATIONAL_GEOGRAPHY_LEVELS, ) + _validate_amount_entity_pins(contract) facts = [ json.loads(line) for line in args.ledger_facts.read_text().splitlines() @@ -120,6 +107,7 @@ def main() -> None: value_operation_by_target_id=_value_operation_by_target_id(contract), selector_pins_by_target_id=_selector_pins(contract), signed_exclusions_by_target_id=_signed_exclusions(contract), + reference_metadata_by_target_id=_reference_metadata(contract), binding_vocabulary=POLICYENGINE_BINDING_KEYS, source_fact_feed=args.source_fact_feed or str(args.ledger_facts), ) @@ -168,6 +156,20 @@ def _filter_contract_by_geography_levels( return filtered +def _validate_amount_entity_pins(contract: Mapping[str, Any]) -> None: + missing = [ + str(target["target_id"]) + for target in contract.get("targets", ()) + if str(target.get("measurement", {}).get("concept", "")).endswith(".amount") + and not str(target.get("ledger_selector", {}).get("entity_name", "")) + ] + if missing: + raise ValueError( + "National amount targets must pin ledger_selector.entity_name: " + f"{missing!r}." + ) + + def _registry_inverse(contract: Mapping[str, Any]) -> dict[str, list[str]]: inverse: dict[str, list[str]] = {} for ancestor, target_id in contract["registry_parity"]["mapped"].items(): @@ -210,6 +212,8 @@ def _geography_pins(contract: Mapping[str, Any]) -> dict[str, dict[str, str]]: # substring rule: its england_* ids name their nation, and devolved_total # needs a per-nation redesign before it can activate. ("slc.support.", "england"), + ("dfe.", "england"), + ("dft.", "england"), ) @@ -257,12 +261,11 @@ def _sum_target_ids(contract: Mapping[str, Any]) -> frozenset[str]: def _value_operation_by_target_id(contract: Mapping[str, Any]) -> dict[str, str]: operations = {target_id: "sum" for target_id in _sum_target_ids(contract)} - # ``dimensions: []`` is an exact-key-set selector pin, not a generic sum - # trigger. The UK all-ages population row is nevertheless a reviewed sum - # residue and must retain that operation explicitly. - operations["ons.population.uk_total"] = "sum" for target in contract.get("targets", ()): target_id = str(target["target_id"]) + declared = target.get("value_operation") + if declared is not None: + operations[target_id] = str(declared) if target.get("family") == "dwp_universal_credit": operations[target_id] = "calendar_year_average" return operations @@ -286,16 +289,19 @@ def _selector_pins(contract: Mapping[str, Any]) -> dict[str, dict[str, Any]]: def _signed_exclusions(contract: Mapping[str, Any]) -> dict[str, str]: target_ids = {str(target["target_id"]) for target in contract.get("targets", ())} + resource = json.loads( + Path(__file__) + .resolve() + .parents[1] + .joinpath( + "packages/microcosm-build/src/microcosm/build/uk/" + "target_reference_signed_exclusions.json" + ) + .read_text() + ) exclusions = { - "hmrc.spi.property_income.amount_by_total_income_band": ( - PROPERTY_INCOME_SIGNED_EXCLUSION_RATIONALE - ), - "ons.population.scotland_households_3plus_children": ( - "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." - ), + str(entry["target_id"]): str(entry["rationale"]) + for entry in resource["exclusions"] } return { target_id: rationale @@ -304,6 +310,16 @@ def _signed_exclusions(contract: Mapping[str, Any]) -> dict[str, str]: } +def _reference_metadata(contract: Mapping[str, Any]) -> dict[str, dict[str, str]]: + return { + str(target["target_id"]): { + "observation_basis": str(target["measurement"]["observation_basis"]) + } + for target in contract.get("targets", ()) + if target.get("measurement", {}).get("observation_basis") is not None + } + + def _fanout_name( target: Mapping[str, Any], fact: Mapping[str, Any], From 8b7f8f04a3d95e17c550576e3255a5b63c82f949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 07:57:21 +0200 Subject: [PATCH 04/11] Re-fit the childcare take-up rates with an expected-count objective and land the extended and universal rates (#834 L5) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The fitter no longer draws. The build keys each take-up flag on the spine's int64 benunit id at the frs_take_up stage and later stages clone and re-key rows, so no re-drawn realisation can sit on the persisted one (re-hashing the final ids agrees with the persisted universal flag on 66% of rows, chance being 51%), and the draw objective was a step function whose finite-difference step flipped no unit on the targeted row's ~157-child base. Two engine runs with the flags forced on (extended on, then off) now give each row's weighted per-row contributions; each target's expectation is linear in its own rate and bilinear with the extended rate through the engine's mutual exclusions (targeted and universal need a family that is not extended-eligible). The objective is smooth, exact for the build, and the receipt reports each row's ceiling at a take-up of one. Unit test pins the bilinear form; `--eps` is recorded in the receipt. Fitted on the L2 column twin at the 2024 base year (Jan-2025 vintage override on the extended row, routed share 0.593 from the contract, hours frozen): extended 0.812 → 0.6054 and universal 0.563 → 0.4539 land as 2024-04-06 entries with a `fitting_receipt`. `tax_free_childcare` (0.997, at its ceiling: with spend routed the two HMRC rows conflict) and `targeted_childcare` (1.0, the eligible base reaches 0.85 of the count) are held at 0.88 / 0.597 for adjudication (plan A22/A23); a rate of 1.0 would also make the persisted flag constant. Receipts Part C L5 carry the three fits, the probes and the rebuilt twin's magnitudes; the swap register signs the two moved flags as `childcare-take-up-refit-834`; the H2 graph parity fixture is regenerated (the take-up stages' node keys fold the contract sha) and the contract test's pinned rates follow. Co-Authored-By: Claude Fable 5.1 --- .../uk-childcare-fitter-834.changed.md | 2 +- experiments/834-childcare-tfc-receipts.md | 106 ++++++++- .../uk/spine_swap_signed_differences.json | 34 +++ .../microcosm/build/uk/take_up_contract.json | 106 ++++++++- .../tests/test_uk_stochastic_tools.py | 38 ++++ .../tests/test_uk_take_up_contract.py | 5 +- .../fixtures/parity/uk_spine/uk_spine.json | 2 +- tools/fit_uk_childcare_takeup.py | 215 ++++++++++++++---- 8 files changed, 457 insertions(+), 51 deletions(-) diff --git a/changelog.d/uk-childcare-fitter-834.changed.md b/changelog.d/uk-childcare-fitter-834.changed.md index 0a70beac9..b83707c99 100644 --- a/changelog.d/uk-childcare-fitter-834.changed.md +++ b/changelog.d/uk-childcare-fitter-834.changed.md @@ -1 +1 @@ -Rewrite the UK childcare take-up fitter to compile its five targets from the calibration contract and the pinned Chronicle feed, fit the four rates only with identity-keyed draws and the hours distribution frozen by adjudication, and record an explicit finite-difference step (`--eps`) in its provenance receipt (#834). +Rewrite the UK childcare take-up fitter: targets compiled from the calibration contract and the pinned Chronicle feed, four rates only with the hours distribution frozen by adjudication, and an expected-count objective (two engine runs with the flags forced on; each row's expectation is linear in its own rate and bilinear with the extended rate through the engine's mutual exclusions) that is exact for the spine's persisted draws, smooth for the optimizer, and reports each row's ceiling at a take-up of one in its provenance receipt (#834). diff --git a/experiments/834-childcare-tfc-receipts.md b/experiments/834-childcare-tfc-receipts.md index baecd9d77..0da64ea98 100644 --- a/experiments/834-childcare-tfc-receipts.md +++ b/experiments/834-childcare-tfc-receipts.md @@ -232,7 +232,111 @@ sampling noise — for targeted, ±10–20% at this base. The exact fix — an e (rate × weight over the rules-eligible base, no draw) with an analytic gradient — is a fitter redesign outside this PR and is filed as a follow-up. -**Second run (`fit_2024_eps05.json`: maxiter 10, eps 0.05):** pending. +**Second run (`fit_2024_eps05.json`: maxiter 10, eps 0.05):** loss 0.302 → 0.077, still +`success: false` at the iteration cap, and two of the four rates on the upper bound: + +| rate | incumbent | fitted | achieved ÷ target at the fitted vector | +|---|---|---|---| +| `tax_free_childcare` | 0.88 | **1.000 (bound)** | spend 0.806, children 1.142 | +| `extended_childcare` | 0.812 | 0.562 | extended 2–4 0.948 | +| `targeted_childcare` | 0.597 | **1.000 (bound)** | targeted 0.878 | +| `universal_childcare` | 0.563 | 0.436 | universal-only 0.955 | + +The TFC objective is flat between 0.9 and 1.0 (spend 0.79–0.81 against children 1.10–1.14: the +two HMRC rows cannot both be met once spend is routed at 0.593, because the frame's spend per +child with a used account sits ~30% below HMRC's; uk-data's comparator ratios are 1.01 / 0.99 on +its own frame), so the bound hit is the optimizer sliding along a flat valley, not a measured +take-up of 100%. The targeted bound is the reachable-ceiling problem above. A rate of 1.0 also +makes the persisted `would_claim_*` column constant, which the degenerate-surface gate refuses +without a signed entry — a fit cannot sign that. + +**Third run — the fitter re-designed (`fit_2024_expected.json`, tool version 3):** the second +run's rates were landed and the spine rebuilt, and the rebuilt twin exposed a seam the receipts +must carry: the build keys every take-up flag as `seed 0 : output : int64 benunit_id` at the +`frs_take_up` stage, and later stages (SPI support channel, CGT incidence clone, age tail) +clone and re-key rows, so no re-drawn realisation can sit on the persisted one — re-hashing the +final ids agrees with the persisted universal flag on 66% of rows, chance being 51% — and the +fitter's own draws (seed 42 on the engine's int32-cast ids, 2³¹ < the spine's ids) were a third +realisation. At identical rates the universal-only count read 397 592 / 434 097 / 463 758 across +the three (fitter s42 / s0 / build). The fitter therefore no longer draws: two engine runs with +the flags forced on (extended on, then off) give each row's weighted per-row contributions, and +each target's expectation is linear in its own rate and bilinear with the extended rate through +the engine's mutual exclusions (targeted and universal need a family that is not +extended-eligible). The objective is smooth, exact for the build (the persisted flags are one +draw from it), and reports each row's ceiling at a take-up of one. Checks: at the incumbent +rates the expectations read spend 0.71, children 1.005, extended 1.32, targeted 0.49, universal +1.06 against the L3 measurements 0.70 / 1.02 / 1.28 / 0.60 / 1.10 (draw noise, amplified for +small bases by cloning); the unit test pins the bilinear form. + +| rate | incumbent | fitted (converged, loss 0.080) | expectation ÷ target | ceiling at 1.0 | +|---|---|---|---|---| +| `tax_free_childcare` | 0.88 | 0.997 | spend 0.804 · children 1.138 | 0.806 · 1.142 | +| `extended_childcare` | 0.812 | **0.6054** | 0.986 | 1.629 | +| `targeted_childcare` | 0.597 | 1.000 (bound) | 0.852 | 0.792 (0.852 at the fitted extended rate) | +| `universal_childcare` | 0.563 | **0.4539** | 1.000 | 1.581 | + +**Landed (plan A6 as exercised):** `extended_childcare` 0.6054 and `universal_childcare` +0.4539 as `2024-04-06` entries with `status: fitted_offline` and a `fitting_receipt` (receipt +sha, seed, engine 2.94.0, input sha, feed sha, contract sha at fit, optimizer block, achieved ÷ +target). `tax_free_childcare` (0.88) and `targeted_childcare` (0.597) are **held at their +incumbent values**: TFC sits at its ceiling because with spend routed at 0.593 the frame's +spend per child with a used account is ~30% below HMRC's, so the two HMRC rows cannot both be +met (spend 0.81 against children 1.14 anywhere above 0.9); targeted's eligible base — England, a +qualifying benefit or UC/TC criterion, and not extended-eligible — reaches 0.85 of the Jan-2024 +count at a take-up of one. Both are put to María (A22/A23); a rate of 1.0 would also make the +persisted flag column constant, which the degenerate-surface gate refuses. The two pairs are +separable (targeted's rate does not move the extended count; TFC touches no DfE row), so the +landed pair is the joint fit's own solution for those rows. The eps-0.05 landing above +(0.5622 / 0.4356) is superseded. + +**Rebuilt on this contract (`l5-refit-twin-b/`, sha `37280e7c…`):** 28 stages, rows +113 626 / 61 234 / 52 846, 15 / 15 spine gates; persisted shares extended 0.6053, universal +0.4512 (rates 0.6054 / 0.4539). Payload against the L2 column twin +(`l5b_vs_l2_payload.json`): benunit — the two re-fitted flags move (12 374 and 6 694 rows), the +seven other draw columns byte-equal; person — 28 `student_loan_balance` rows (the stock +top-up's selection); household — 33 imputed columns through the predictors, as in L2 vs L1 +(energy IPF 52 586 rows, property rescale 24 948 owners, wealth/consumption draws ≤ 445 rows); +time_period byte-equal. Signed in the swap register as `childcare-take-up-refit-834` +(`mechanism_change`, max |Δshare| 0.2068 / 0.1103 against the packaged reference). Release +round trip (`l5b_refit_childcare_receipt.json`, engine 2.94.0, design weights): + +| target (basis 2024 / 2025) | L3 (incumbent rates) | twin-b (landed) | expectation at the landed vector | +|---|---|---|---| +| TFC top-up £ | 0.698 / 0.772 | 0.698 / 0.772 | 0.710 | +| TFC children with used accounts | 1.020 / 0.951 | 1.020 / 0.951 | 1.005 | +| extended 2–4, England | 1.283 / 1.261 | **0.999 / 0.982** | 0.986 | +| targeted 2-year-olds, England | 0.596 / 0.738 | 0.628 / 0.772 | 0.509 | +| universal-only 3–4s, England | 1.104 / 1.177 | **1.087 / 1.157** | 1.000 | + +The extended row lands on its expectation; universal realises 9% above and targeted 23% above +theirs — the persisted flags are one identity-keyed draw and the SPI/CGT clone stages copy a +source family's flag onto every clone, so the realised count's effective sample is far smaller +than its row count on the small bases (targeted: ~157 candidate children). The expectation is +what the rate controls; the calibration weights absorb the realisation. + +### L4 — composition on `uk-publication-stack-834` + +The composition branch (`repos/populace-834-l4`, `uk-publication-stack-834` = the #834 tree plus +the publication stack's target-fit deferral register and its gate wiring, ported by hand from +stack `6d3f984a`; main's local-candidate branch of the evaluator preserved) runs +`tools/calibrate_uk_national_dataset.py` on the rebuilt twin against the pinned feed (facts +`6ae49d7d…`, manifest `dcda51d6…`), 1 500 epochs, Adam 0.02, max weight ratio 10, the packaged +measure exclusions, release id `uk-spine-assessment-834-l4`. + +**Run 1 (first landing 0.5622 / 0.4356, per-target uniform weights — superseded).** The runner +was invoked without `--target-weight-rule`, so every one of the 371 targets weighed 1.0 where +L4-pre had weighed families equally (`weight_kind: provided`, each UC cell ≈ 0.01). Loss 0.374 → +0.0135, 95.4% within 10%, ESS 8 154; the seven new rows all within 0.2%, and three of the four +deferred UC with-children cells inside 1.2% (children_5_or_more −28.3%) — but at the price the +family weighting exists to prevent: `hmrc.cgt.gains_total` −30.3% (OBR CGT exact), +`ons.savings_interest_income` −74.8%, `voa.council_tax_stock.band_a` +34.2%, +`slc.borrowers.plan_2_liable` −26.6%. The 100-row UC family dominated the solve. Kept as the +weighting-sensitivity receipt (`l4-834/run1/`), not as the composition measurement. The +terminal battery also failed closed on the ported gate (`KeyError: exclusions_evaluated_on`): +the binding's required-artifact set lacked the exclusion clock, fixed on the branch +(`7234d305`). + +**Run 2 (converged landing 0.6054 / 0.4539, `family_equal` as L4-pre):** pending. ## Part D — bus (#789) diff --git a/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json b/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json index 18e3bac54..399e7dc4c 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json +++ b/packages/microcosm-build/src/microcosm/build/uk/spine_swap_signed_differences.json @@ -711,6 +711,40 @@ ] } } + }, + { + "id": "childcare-take-up-refit-834", + "class": "mechanism_change", + "scope": { + "surface": "nonzero_shares", + "columns": [ + "would_claim_extended_childcare", + "would_claim_universal_childcare" + ], + "entities": [ + "benunit" + ] + }, + "expectation": "column_differs", + "magnitude_evidence": "The extended and universal childcare take-up rates are re-fitted (#834 L5, plan A6) on the L2 column twin at the 2024 base year against the compiled DfE rows with the routed share in the frame: extended 0.812 -> 0.6054 and universal 0.563 -> 0.4539, expected-count fit (two engine runs, bilinear in the rates), so the persisted identity-keyed flags' nonzero shares move by the rate change (the incumbent's 0.812 / 0.561 were the pre-freeze fit). Re-measured on the rebuilt spine (sha256 37280e7c99af3f4d4f176c42722c56e1fd2c5170de8d3d97ba767db46de40b08): extended 0.6053, universal 0.4512. TFC and targeted are held at their incumbent rates (fit hit the 1.0 bound; plan A22/A23) and are not signed here.", + "evidence": "experiments/834-childcare-tfc-receipts.md#part-c--column-twin-l2-release-round-trip-l3-re-fit-l5-composition-l4", + "adjudicator": "juaristi22", + "adjudicated_on": "2026-09-05", + "quantitative": { + "shares": { + "would_claim_extended_childcare": { + "incumbent_share": 0.811982, + "direction": "candidate_below", + "max_abs_delta": 0.2068 + }, + "would_claim_universal_childcare": { + "incumbent_share": 0.561488, + "direction": "candidate_below", + "max_abs_delta": 0.1103 + } + }, + "magnitude_provenance": "max_abs_delta measured 2026-09-05 on the L5 rebuilt twin (sha256 37280e7c99af3f4d4f176c42722c56e1fd2c5170de8d3d97ba767db46de40b08) against the packaged reference, rounded up at 1e-4 grain." + } } ] } diff --git a/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json b/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json index 875e5de82..1a0d2de5f 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json +++ b/packages/microcosm-build/src/microcosm/build/uk/take_up_contract.json @@ -118,7 +118,8 @@ "output": "would_claim_extended_childcare", "entity": "benunit", "values": { - "2015-01-01": 0.812 + "2015-01-01": 0.812, + "2024-04-06": 0.6054 }, "source": { "source": "FRS empirical fit", @@ -127,9 +128,53 @@ "status": "fitted_offline" }, "fitting_receipt": { - "source": "incumbent UK pipeline @ ebf733c", - "seed": 42, - "status": "frozen parity value" + "source": "tools/fit_uk_childcare_takeup.py (microcosm#834 L5, licensed lane)", + "tool_version": 3, + "receipt_sha256": "c56ca568ef446f07f773ea03253bc2f9d878aeea6bc781ee38ed268d1fedde96", + "seed": 0, + "engine_version": "2.94.0", + "model_period": 2024, + "vintage_overrides": { + "dfe.funded_childcare.working_parent_children_2_to_4": 2025 + }, + "input_h5_sha256": "c2804c18c0fc6a1c00e2ccc68f5eda5cd8b739906970dcb95ca82471d9d436b8", + "ledger_facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", + "stochastic_contract_sha256_at_fit": "ba3daedade4c9e0115307eab2575e98c6921fb09357664ae3ea15644a86939e0", + "optimizer": { + "eps": 1e-06, + "loss": 0.07969210950295769, + "maxiter": 50, + "method": "L-BFGS-B", + "success": true + }, + "achieved": { + "dfe.funded_childcare.early_learning_2_year_olds": { + "target": 115852.0, + "value": 98692.247, + "ratio": 0.8519 + }, + "dfe.funded_childcare.universal_only_children": { + "target": 416537.0, + "value": 416536.695, + "ratio": 1.0 + }, + "dfe.funded_childcare.working_parent_children_2_to_4": { + "target": 621482.0, + "value": 612914.443, + "ratio": 0.9862 + }, + "hmrc.tfc.children_with_used_accounts": { + "target": 1085020.0, + "value": 1235197.414, + "ratio": 1.1384 + }, + "hmrc.tfc.government_top_up": { + "target": 632200000.0, + "value": 508305122.499, + "ratio": 0.804 + } + }, + "status": "fitted on the L2 column twin at the 2024 base year (A6); hours distribution frozen; the same fit drove tax_free_childcare and targeted_childcare to the 1.0 bound, which are held at their incumbent values pending adjudication (plan A22/A23)" } }, { @@ -137,7 +182,8 @@ "output": "would_claim_universal_childcare", "entity": "benunit", "values": { - "2015-01-01": 0.563 + "2015-01-01": 0.563, + "2024-04-06": 0.4539 }, "source": { "source": "FRS empirical fit", @@ -146,9 +192,53 @@ "status": "fitted_offline" }, "fitting_receipt": { - "source": "incumbent UK pipeline @ ebf733c", - "seed": 42, - "status": "frozen parity value" + "source": "tools/fit_uk_childcare_takeup.py (microcosm#834 L5, licensed lane)", + "tool_version": 3, + "receipt_sha256": "c56ca568ef446f07f773ea03253bc2f9d878aeea6bc781ee38ed268d1fedde96", + "seed": 0, + "engine_version": "2.94.0", + "model_period": 2024, + "vintage_overrides": { + "dfe.funded_childcare.working_parent_children_2_to_4": 2025 + }, + "input_h5_sha256": "c2804c18c0fc6a1c00e2ccc68f5eda5cd8b739906970dcb95ca82471d9d436b8", + "ledger_facts_sha256": "6ae49d7d7ab297df25a0b9bfe2d6776827c672d284fbb360957fe8337089549f", + "stochastic_contract_sha256_at_fit": "ba3daedade4c9e0115307eab2575e98c6921fb09357664ae3ea15644a86939e0", + "optimizer": { + "eps": 1e-06, + "loss": 0.07969210950295769, + "maxiter": 50, + "method": "L-BFGS-B", + "success": true + }, + "achieved": { + "dfe.funded_childcare.early_learning_2_year_olds": { + "target": 115852.0, + "value": 98692.247, + "ratio": 0.8519 + }, + "dfe.funded_childcare.universal_only_children": { + "target": 416537.0, + "value": 416536.695, + "ratio": 1.0 + }, + "dfe.funded_childcare.working_parent_children_2_to_4": { + "target": 621482.0, + "value": 612914.443, + "ratio": 0.9862 + }, + "hmrc.tfc.children_with_used_accounts": { + "target": 1085020.0, + "value": 1235197.414, + "ratio": 1.1384 + }, + "hmrc.tfc.government_top_up": { + "target": 632200000.0, + "value": 508305122.499, + "ratio": 0.804 + } + }, + "status": "fitted on the L2 column twin at the 2024 base year (A6); hours distribution frozen; the same fit drove tax_free_childcare and targeted_childcare to the 1.0 bound, which are held at their incumbent values pending adjudication (plan A22/A23)" } }, { diff --git a/packages/microcosm-build/tests/test_uk_stochastic_tools.py b/packages/microcosm-build/tests/test_uk_stochastic_tools.py index cb659d549..732e20968 100644 --- a/packages/microcosm-build/tests/test_uk_stochastic_tools.py +++ b/packages/microcosm-build/tests/test_uk_stochastic_tools.py @@ -83,6 +83,44 @@ def runner(path: Path, params: np.ndarray, seed: int, period: int, contract): assert set(first["achieved"]) == set(tool.TARGET_IDS) +def test_childcare_expected_counts_are_bilinear_in_the_extended_rate() -> None: + tool = _load_tool("fit_uk_childcare_takeup") + # Two rows: the first family is extended-eligible (loses targeted and + # universal when it claims extended), the second is not. + with_ext = { + "hmrc.tfc.government_top_up": np.array([100.0, 50.0]), + "hmrc.tfc.children_with_used_accounts": np.array([1.0, 1.0]), + "dfe.funded_childcare.working_parent_children_2_to_4": np.array([1.0, 0.0]), + "dfe.funded_childcare.early_learning_2_year_olds": np.array([0.0, 1.0]), + "dfe.funded_childcare.universal_only_children": np.array([0.0, 1.0]), + } + without_ext = { + **with_ext, + "dfe.funded_childcare.early_learning_2_year_olds": np.array([1.0, 1.0]), + "dfe.funded_childcare.universal_only_children": np.array([1.0, 1.0]), + } + basis = tool.ChildcareExpectationBasis( + with_extended=with_ext, without_extended=without_ext, rows=2 + ) + # RATE_KEYS order: tfc, extended, targeted, universal + expected = tool.expected_childcare_counts(basis, np.array([0.5, 0.25, 1.0, 0.4])) + + assert expected["hmrc.tfc.government_top_up"] == pytest.approx(75.0) + assert expected["hmrc.tfc.children_with_used_accounts"] == pytest.approx(1.0) + assert expected["dfe.funded_childcare.working_parent_children_2_to_4"] == ( + pytest.approx(0.25) + ) + # targeted: family 1 is eligible only when it does not claim extended. + assert expected["dfe.funded_childcare.early_learning_2_year_olds"] == ( + pytest.approx(1.0 * (0.75 + 1.0)) + ) + assert expected["dfe.funded_childcare.universal_only_children"] == ( + pytest.approx(0.4 * (0.75 + 1.0)) + ) + ceiling = tool.expected_childcare_counts(basis, np.ones(4)) + assert ceiling["dfe.funded_childcare.early_learning_2_year_olds"] == 1.0 + + def test_childcare_fitter_family_allow_list_excludes_entitlement_spending() -> None: tool = _load_tool("fit_uk_childcare_takeup") diff --git a/packages/microcosm-build/tests/test_uk_take_up_contract.py b/packages/microcosm-build/tests/test_uk_take_up_contract.py index 402410eef..d52f201b9 100644 --- a/packages/microcosm-build/tests/test_uk_take_up_contract.py +++ b/packages/microcosm-build/tests/test_uk_take_up_contract.py @@ -46,8 +46,8 @@ def test_uk_contract_loads_and_selects_build_year_rates() -> None: 0.55, 0.5, 0.88, - 0.812, - 0.563, + 0.6054, + 0.4539, 0.597, 0.97, 0.85, @@ -67,6 +67,7 @@ def test_year_selection_uses_latest_value_at_or_before_build_year() -> None: assert contract.rate("child_benefit", 2021) == 0.97 assert contract.rate("child_benefit", 2023) == 0.89 assert contract.rate("tax_free_childcare", 2024) == 0.88 + assert contract.rate("tax_free_childcare", 2023) == 0.586 assert contract.rate("tv_licence_evasion_rate", 2024) == 0.1252 assert contract.rate("tax_free_childcare_spend_routed_share", 2017) == 0.359 assert contract.rate("tax_free_childcare_spend_routed_share", 2024) == 0.593 diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json index 7013d4cf5..101ad7a8b 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/uk_spine.json @@ -1 +1 @@ -{"country":"uk","nodes":[{"base":null,"citation":"","description":"Load the source-bound UK FRS root population.","id":"create_uk_frs","inputs":[],"kernel":"uk.create@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"dfd331a9aba8fd095ebb16250f90cbb5de2ea999874c22fa3bea6a7e33fa83bf","time_period":"2024"},"population":null,"sources":["frs"],"structural":"create","weights":null},{"base":"create_uk_frs","citation":"","description":"Ownership boundary for the source-assembling root stage.","id":"frs_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Claim the cells assembled by the UK FRS root transform.","id":"frs_spine","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{},"population":"frs_spine.boundary","sources":[],"structural":"none","weights":null},{"base":"frs_spine.boundary","citation":"","description":"Ownership boundary before age_tail rewrites.","id":"age_tail.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage age_tail.","id":"age_tail","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["external_child_payments","region"],"entity":"household","rows":"all"},{"columns":["gender"],"entity":"person","rows":"all"}],"kernel":"uk.stage.age_tail@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_employment@1","mass":"conserve","outputs":[{"column":"employment_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_sector","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"sic_industry_division","dtype":"int64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_council_tax.","id":"frs_council_tax","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","sic_industry_division"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_council_tax@1","mass":"conserve","outputs":[{"column":"council_tax","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_disability.","id":"frs_disability","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax","region"],"entity":"household","rows":"all"},{"columns":["afcs_reported","age","attendance_allowance_reported","dla_m_reported","dla_sc_reported","esa_contrib_reported","esa_income_reported","iidb_reported","incapacity_benefit_reported","pip_dl_reported","pip_m_reported","sda_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_disability@1","mass":"conserve","outputs":[{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_disability","stage_contract_sha256":"2d5ed820f9f9fbe4a45a333f5c5e1dfbdfe2b53a055584ada4c44eacb4b58954","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education.","id":"frs_education","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","esa_contrib_reported","esa_income_reported","is_severely_disabled_for_benefits","jsa_contrib_reported","jsa_income_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education@1","mass":"conserve","outputs":[{"column":"current_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"highest_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_non_advanced_education","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_approved_training","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"age_started_or_accepted_current_education_or_training","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_before_universal_credit_qualifying_young_person_terminal_date","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"adult_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"receives_benefits_in_own_right","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_legacy_proxies.","id":"frs_legacy_proxies","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_legacy_proxies@1","mass":"conserve","outputs":[{"column":"legacy_jobseeker_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_health_condition_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_support_group_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_legacy_proxies","stage_contract_sha256":"1ecf761cf3fa7180da15659e138e67a8654e58272b4fde28344aa27a874ad0aa","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"age_tail.boundary","citation":"","description":"Ownership boundary before frs_education_grant_split rewrites.","id":"frs_education_grant_split.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education_grant_split.","id":"frs_education_grant_split","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education_grant_split@1","mass":"conserve","outputs":[{"column":"disabled_students_allowance_eligible_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"frs_education_grant_split","stage_contract_sha256":"6f0fcfa6a1aa614f7ccefe39364b4ebd208c9a4ed081f7618e026b2e87f152fa","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","child_benefit_reported","education_grants","pension_credit_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_child_benefit","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"child_benefit_opts_out","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_tfc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_extended_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_universal_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_targeted_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"frs_take_up","stage_contract_sha256":"d10ca01bfa5d719640ded8e62196b0692236d3be0a2417899deeefd241088abf","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_person_draws.","id":"frs_person_draws","inputs":[{"columns":["frs_benunit_capital","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_person_draws@1","mass":"conserve","outputs":[{"column":"would_claim_marriage_allowance","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"would_claim_scp","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"attends_private_school_random_draw","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"tax_free_childcare_spend_routed_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_person_draws","stage_contract_sha256":"9c299a6cf69ac771667ee3e3105637ff87cd780a423db805f9002352b2f1005f","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_household_draws.","id":"frs_household_draws","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_household_draws@1","mass":"conserve","outputs":[{"column":"household_owns_tv","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"would_evade_tv_licence_fee","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residential_property_purchased_is_first_home","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"property_purchased","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_brma.","id":"frs_brma","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_brma@1","mass":"conserve","outputs":[{"column":"brma","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_brma","stage_contract_sha256":"5b8f0b361310c7cd3efbaae3762b347649b7d4afb9e9943131d9bef9266fc3c8","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"frs_education_grant_split.boundary","citation":"","description":"Freeze the assembled-spine gate population.","id":"frs_brma.checkpoint","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage was_wealth.","id":"was_wealth","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_wealth@1","mass":"conserve","outputs":[{"column":"owned_land","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"corporate_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"private_pension_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gross_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"net_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"other_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"non_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"savings","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"num_vehicles","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cash_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"stocks_and_shares_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"consumer_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"student_loan_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"was_wealth","stage_contract_sha256":"c499dcb7c49a0176229dbc363b400415cb5c1da44af266ba2155f9a62a0bd2ed","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"base":"frs_brma.checkpoint","citation":"","description":"Ownership boundary before regional_property_uprating rewrites.","id":"regional_property_uprating.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage regional_property_uprating.","id":"regional_property_uprating","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.regional_property_uprating@1","mass":"conserve","outputs":[{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"regional_property_uprating","stage_contract_sha256":"4304356c6c5ba91a04883148cbf9078761ee926c8387aadb6c15b6b70ebb31f6","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage lcfs_consumption.","id":"lcfs_consumption","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.lcfs_consumption@1","mass":"conserve","outputs":[{"column":"food_and_non_alcoholic_beverages_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"alcohol_and_tobacco_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"clothing_and_footwear_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_water_and_electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_furnishings_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"health_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"transport_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"communication_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"recreation_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"education_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"restaurants_and_hotels_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"miscellaneous_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"petrol_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"diesel_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_fare_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_energy_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gas_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"has_fuel_consumption","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"lcfs_consumption","stage_contract_sha256":"eb0a529c357c84290a001209a18c5a43b0a0310553c77963d6842fd0111b73ad","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_vat.","id":"etb_vat","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_vat@1","mass":"conserve","outputs":[{"column":"full_rate_vat_expenditure_rate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"etb_vat","stage_contract_sha256":"99a6756256adfe8255672fafda89710c08ae56bd2b8f011b20c3b8381eabfa1e","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_services.","id":"etb_services","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_services@1","mass":"conserve","outputs":[{"column":"dfe_education_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_usage","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"a_and_e_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"admitted_patient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"outpatient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_a_and_e_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_admitted_patient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_outpatient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"etb_services","stage_contract_sha256":"48294c9d86dd422238a723aca5845e9ceb9eda2903a3bb87bb32a86092447e19","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_hmrc_spine_leaves.","id":"frs_hmrc_spine_leaves","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_hmrc_spine_leaves@1","mass":"conserve","outputs":[{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ossben_identifiable_subset","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"srp_regular_code5","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","citation":"","description":"Run structural UK stage spi_support_channel.","id":"spi_support_channel","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_support_channel@1","mass":"declared","outputs":[],"params":{"expand_cells":[["person","person_source_id","int64"],["person","person_support_channel","string"],["person","person_support_clone_index","int64"],["benunit","benunit_source_id","int64"],["benunit","benunit_support_channel","string"],["benunit","benunit_support_clone_index","int64"],["household","source_household_id","int64"],["household","source_year","int64"],["household","source_household_key","string"],["household","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"spi_support_channel","stage_contract_sha256":"4b10f1a4a215cdf2c406c9974de2d1e580eb3cd3a25ed34973c1b63abf4a54bb","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_support_channel.","id":"spi_support_channel.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"source_household_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_year","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_household_key","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["person.person_source_id","person.person_support_channel","person.person_support_clone_index","benunit.benunit_source_id","benunit.benunit_support_channel","benunit.benunit_support_clone_index","household.source_household_id","household.source_year","household.source_household_key","household.household_source_id","household.household_support_channel","household.household_support_clone_index","household.household_is_spi_synthetic"]},"population":"spi_support_channel","sources":[],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_spi_income_spine.","id":"hmrc_spi_income_spine","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","maintenance_expenses","childcare_expenses","salary_sacrifice_reported","salary_sacrifice_asked","ssmg_reported","incapacity_benefit_reported","employment_status","employment_sector","sic_industry_division","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_spi_income_spine@1","mass":"conserve","outputs":[{"column":"charitable_investment_gifts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"gift_aid","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_benefits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_social_security_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_taxable_termination_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_miscellaneous_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_state_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employed_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_earned_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_assessable_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_spi_income_spine","stage_contract_sha256":"3db4e7361ea871ca57b52aafce48209409d7b59d836ed973eee946b5657a771a","time_period":"2024"},"population":"spi_support_channel","sources":["frs"],"structural":"none","weights":null},{"base":"spi_support_channel","citation":"","description":"Ownership boundary before uc_reporter_redraw rewrites.","id":"uc_reporter_redraw.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_reporter_redraw.","id":"uc_reporter_redraw","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_reporter_redraw@1","mass":"conserve","outputs":[{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_reporter_redraw","stage_contract_sha256":"23a23df85489708d15c7c0be3d1339ff5e1fe0932abaea0f95fcbf9c6d368205","time_period":"2024"},"population":"uc_reporter_redraw.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_reporter_redraw.boundary","citation":"","description":"Ownership boundary before uc_capital_coherence rewrites.","id":"uc_capital_coherence.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_capital_coherence.","id":"uc_capital_coherence","inputs":[{"columns":["benunit_support_channel","dependent_children","is_married"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","person_support_channel","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_capital_coherence@1","mass":"conserve","outputs":[{"column":"uc_reported_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_capital_coherence","stage_contract_sha256":"64024e4ca8659cad2452abe5578071cf8226e693f3cb975cf4778078bf8baf17","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_uc"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_deduction_attributes@1","mass":"conserve","outputs":[{"column":"uc_deduction_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_type_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_latent_deduction_rate","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_combination","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_incidence_clone.","id":"cgt_incidence_clone","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_clone@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_capital_gains_clone","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_incidence_clone","stage_contract_sha256":"ee30278543cc0297a5366d855b7753aa04af5518971594c193c52be36bf8a7b4","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_incidence_clone.","id":"cgt_incidence_clone.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_capital_gains_clone","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_capital_gains_clone","person.capital_gains"]},"population":"cgt_incidence_clone","sources":[],"structural":"none","weights":null},{"base":"cgt_incidence_clone","citation":"","description":"Run structural UK stage cgt_band_donors.","id":"cgt_band_donors","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_band_donors@1","mass":"free","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_band_donor","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_band_donors","stage_contract_sha256":"e10e10c49c0ca2a6a65048c91b683f818e8b6e207a6c6f57a20d76ea299160b0","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_band_donors.","id":"cgt_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_band_donor"]},"population":"cgt_band_donors","sources":[],"structural":"none","weights":null},{"base":"cgt_band_donors","citation":"","description":"Ownership boundary before hmrc_cgt_gains_spine rewrites.","id":"hmrc_cgt_gains_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_gains_spine.","id":"hmrc_cgt_gains_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","tax_free_savings_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_gains_spine@1","mass":"conserve","outputs":[{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"20ada8d8ee94400bd160223e865a910db7aff9c40a7f0c8ee8ca8c40ed901b72","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage salary_sacrifice.","id":"salary_sacrifice","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.salary_sacrifice@1","mass":"conserve","outputs":[{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"salary_sacrifice","stage_contract_sha256":"a4af925af21cc6766eb7c8855b6743a3aa4eeeb38df12cfc83063d7ad6890539","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage student_loans.","id":"student_loans","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","current_education","employee_pension_contributions","highest_education","student_loan_repayments","student_loans"],"entity":"person","rows":"all"}],"kernel":"uk.stage.student_loans@1","mass":"conserve","outputs":[{"column":"student_loan_plan","dtype":"string","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"student_loans","stage_contract_sha256":"7c4c76398c2e80b41c7f941a5f06246b57d89b5eb0c36d42e3116ac35e82e203","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} +{"country":"uk","nodes":[{"base":null,"citation":"","description":"Load the source-bound UK FRS root population.","id":"create_uk_frs","inputs":[],"kernel":"uk.create@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"dfd331a9aba8fd095ebb16250f90cbb5de2ea999874c22fa3bea6a7e33fa83bf","time_period":"2024"},"population":null,"sources":["frs"],"structural":"create","weights":null},{"base":"create_uk_frs","citation":"","description":"Ownership boundary for the source-assembling root stage.","id":"frs_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Claim the cells assembled by the UK FRS root transform.","id":"frs_spine","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"gender","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"marital_status","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hours_worked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_household_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_benunit_head","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_parent","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"miscellaneous_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_transfer_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"lump_sum_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loan_repayments","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_sick_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"statutory_maternity_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"student_loans","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"access_fund","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"healthy_start_vouchers","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_breakfasts","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_fruit_veg","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"free_school_meals","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"maintenance_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"childcare_expenses","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"salary_sacrifice_asked","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"ssmg_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"incapacity_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_married","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dependent_children","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"region","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tenure_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"accommodation_type","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"num_bedrooms","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_band","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_single_adult_raw","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"water_and_sewerage_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"domestic_rates","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_interest_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"mortgage_capital_repayment","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"structural_insurance_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_service_charges","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"external_child_payments","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{},"population":"frs_spine.boundary","sources":[],"structural":"none","weights":null},{"base":"frs_spine.boundary","citation":"","description":"Ownership boundary before age_tail rewrites.","id":"age_tail.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage age_tail.","id":"age_tail","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["external_child_payments","region"],"entity":"household","rows":"all"},{"columns":["gender"],"entity":"person","rows":"all"}],"kernel":"uk.stage.age_tail@1","mass":"conserve","outputs":[{"column":"age","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_employment@1","mass":"conserve","outputs":[{"column":"employment_status","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_sector","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"sic_industry_division","dtype":"int64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_council_tax.","id":"frs_council_tax","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","sic_industry_division"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_council_tax@1","mass":"conserve","outputs":[{"column":"council_tax","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_disability.","id":"frs_disability","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax","region"],"entity":"household","rows":"all"},{"columns":["afcs_reported","age","attendance_allowance_reported","dla_m_reported","dla_sc_reported","esa_contrib_reported","esa_income_reported","iidb_reported","incapacity_benefit_reported","pip_dl_reported","pip_m_reported","sda_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_disability@1","mass":"conserve","outputs":[{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_disability","stage_contract_sha256":"2d5ed820f9f9fbe4a45a333f5c5e1dfbdfe2b53a055584ada4c44eacb4b58954","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education.","id":"frs_education","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","esa_contrib_reported","esa_income_reported","is_severely_disabled_for_benefits","jsa_contrib_reported","jsa_income_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education@1","mass":"conserve","outputs":[{"column":"current_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"highest_education","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_non_advanced_education","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"is_in_approved_training","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"age_started_or_accepted_current_education_or_training","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"is_before_universal_credit_qualifying_young_person_terminal_date","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"adult_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"child_ema","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"receives_benefits_in_own_right","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_legacy_proxies.","id":"frs_legacy_proxies","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_legacy_proxies@1","mass":"conserve","outputs":[{"column":"legacy_jobseeker_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_health_condition_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"esa_support_group_proxy","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_legacy_proxies","stage_contract_sha256":"1ecf761cf3fa7180da15659e138e67a8654e58272b4fde28344aa27a874ad0aa","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"age_tail.boundary","citation":"","description":"Ownership boundary before frs_education_grant_split rewrites.","id":"frs_education_grant_split.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_education_grant_split.","id":"frs_education_grant_split","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_education_grant_split@1","mass":"conserve","outputs":[{"column":"disabled_students_allowance_eligible_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"education_grants","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"frs_education_grant_split","stage_contract_sha256":"6f0fcfa6a1aa614f7ccefe39364b4ebd208c9a4ed081f7618e026b2e87f152fa","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","child_benefit_reported","education_grants","pension_credit_reported","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_child_benefit","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"child_benefit_opts_out","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_tfc","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_extended_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_universal_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"would_claim_targeted_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"frs_take_up","stage_contract_sha256":"d10ca01bfa5d719640ded8e62196b0692236d3be0a2417899deeefd241088abf","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_person_draws.","id":"frs_person_draws","inputs":[{"columns":["frs_benunit_capital","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_person_draws@1","mass":"conserve","outputs":[{"column":"would_claim_marriage_allowance","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"would_claim_scp","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"attends_private_school_random_draw","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"tax_free_childcare_spend_routed_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_person_draws","stage_contract_sha256":"e87b779c3977aa520c298f9bca54b675a8cacb8baed0b58412a1f783b42968ff","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_household_draws.","id":"frs_household_draws","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_household_draws@1","mass":"conserve","outputs":[{"column":"household_owns_tv","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"would_evade_tv_licence_fee","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residential_property_purchased_is_first_home","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"property_purchased","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_brma.","id":"frs_brma","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_brma@1","mass":"conserve","outputs":[{"column":"brma","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"frs_brma","stage_contract_sha256":"5b8f0b361310c7cd3efbaae3762b347649b7d4afb9e9943131d9bef9266fc3c8","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"frs_education_grant_split.boundary","citation":"","description":"Freeze the assembled-spine gate population.","id":"frs_brma.checkpoint","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage was_wealth.","id":"was_wealth","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_wealth@1","mass":"conserve","outputs":[{"column":"owned_land","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"corporate_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"private_pension_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gross_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"net_financial_wealth","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"other_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"non_residential_property_value","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"savings","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"num_vehicles","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cash_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"stocks_and_shares_isa","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"mortgage_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"consumer_debt","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"student_loan_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"was_wealth","stage_contract_sha256":"c499dcb7c49a0176229dbc363b400415cb5c1da44af266ba2155f9a62a0bd2ed","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"base":"frs_brma.checkpoint","citation":"","description":"Ownership boundary before regional_property_uprating rewrites.","id":"regional_property_uprating.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage regional_property_uprating.","id":"regional_property_uprating","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.regional_property_uprating@1","mass":"conserve","outputs":[{"column":"main_residence_value","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_wealth","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"regional_property_uprating","stage_contract_sha256":"4304356c6c5ba91a04883148cbf9078761ee926c8387aadb6c15b6b70ebb31f6","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage lcfs_consumption.","id":"lcfs_consumption","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.lcfs_consumption@1","mass":"conserve","outputs":[{"column":"food_and_non_alcoholic_beverages_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"alcohol_and_tobacco_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"clothing_and_footwear_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"housing_water_and_electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_furnishings_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"health_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"transport_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"communication_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"recreation_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"education_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"restaurants_and_hotels_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"miscellaneous_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"petrol_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"diesel_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_fare_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"domestic_energy_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"electricity_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"gas_consumption","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"has_fuel_consumption","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"lcfs_consumption","stage_contract_sha256":"eb0a529c357c84290a001209a18c5a43b0a0310553c77963d6842fd0111b73ad","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_vat.","id":"etb_vat","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_vat@1","mass":"conserve","outputs":[{"column":"full_rate_vat_expenditure_rate","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"stage":"etb_vat","stage_contract_sha256":"99a6756256adfe8255672fafda89710c08ae56bd2b8f011b20c3b8381eabfa1e","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage etb_services.","id":"etb_services","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.etb_services@1","mass":"conserve","outputs":[{"column":"dfe_education_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"bus_subsidy_spending","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"rail_usage","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"a_and_e_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"admitted_patient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"outpatient_visits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_a_and_e_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_admitted_patient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"nhs_outpatient_spending","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"etb_services","stage_contract_sha256":"48294c9d86dd422238a723aca5845e9ceb9eda2903a3bb87bb32a86092447e19","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage frs_hmrc_spine_leaves.","id":"frs_hmrc_spine_leaves","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_hmrc_spine_leaves@1","mass":"conserve","outputs":[{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"ossben_identifiable_subset","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"srp_regular_code5","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","citation":"","description":"Run structural UK stage spi_support_channel.","id":"spi_support_channel","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_support_channel@1","mass":"declared","outputs":[],"params":{"expand_cells":[["person","person_source_id","int64"],["person","person_support_channel","string"],["person","person_support_clone_index","int64"],["benunit","benunit_source_id","int64"],["benunit","benunit_support_channel","string"],["benunit","benunit_support_clone_index","int64"],["household","source_household_id","int64"],["household","source_year","int64"],["household","source_household_key","string"],["household","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"spi_support_channel","stage_contract_sha256":"4b10f1a4a215cdf2c406c9974de2d1e580eb3cd3a25ed34973c1b63abf4a54bb","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_support_channel.","id":"spi_support_channel.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"source_household_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_year","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"source_household_key","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["person.person_source_id","person.person_support_channel","person.person_support_clone_index","benunit.benunit_source_id","benunit.benunit_support_channel","benunit.benunit_support_clone_index","household.source_household_id","household.source_year","household.source_household_key","household.household_source_id","household.household_support_channel","household.household_support_clone_index","household.household_is_spi_synthetic"]},"population":"spi_support_channel","sources":[],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_spi_income_spine.","id":"hmrc_spi_income_spine","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","maintenance_expenses","childcare_expenses","salary_sacrifice_reported","salary_sacrifice_asked","ssmg_reported","incapacity_benefit_reported","employment_status","employment_sector","sic_industry_division","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_spi_income_spine@1","mass":"conserve","outputs":[{"column":"charitable_investment_gifts","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"gift_aid","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_benefits","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employment_expenses","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_social_security_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_taxable_termination_pay","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_miscellaneous_employment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_other_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_state_pension_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_employed_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_earned_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_total_investment_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"hmrc_spi_assessable_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"savings_interest_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dividend_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"private_pension_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"property_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employer_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"personal_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"tax_free_savings_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pension_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"income_support_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"working_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"child_tax_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"attendance_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"state_pension_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sda_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"carers_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"iidb_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"afcs_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"bsp_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"winter_fuel_allowance_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_benefit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"jsa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_contrib_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"esa_income_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_pay","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_unemployment_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"hmrc_spi_incapacity_benefit_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"aa_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_sc_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"dla_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_m_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"pip_dl_category","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_enhanced_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"is_severely_disabled_for_benefits","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_spi_income_spine","stage_contract_sha256":"3db4e7361ea871ca57b52aafce48209409d7b59d836ed973eee946b5657a771a","time_period":"2024"},"population":"spi_support_channel","sources":["frs"],"structural":"none","weights":null},{"base":"spi_support_channel","citation":"","description":"Ownership boundary before uc_reporter_redraw rewrites.","id":"uc_reporter_redraw.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_reporter_redraw.","id":"uc_reporter_redraw","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_reporter_redraw@1","mass":"conserve","outputs":[{"column":"universal_credit_reported","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_reporter_redraw","stage_contract_sha256":"23a23df85489708d15c7c0be3d1339ff5e1fe0932abaea0f95fcbf9c6d368205","time_period":"2024"},"population":"uc_reporter_redraw.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_reporter_redraw.boundary","citation":"","description":"Ownership boundary before uc_capital_coherence rewrites.","id":"uc_capital_coherence.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_capital_coherence.","id":"uc_capital_coherence","inputs":[{"columns":["benunit_support_channel","dependent_children","is_married"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","person_support_channel","universal_credit_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_capital_coherence@1","mass":"conserve","outputs":[{"column":"uc_reported_capital","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"frs_benunit_capital","dtype":"float64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"would_claim_uc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"uc_capital_coherence","stage_contract_sha256":"64024e4ca8659cad2452abe5578071cf8226e693f3cb975cf4778078bf8baf17","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_uc"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age"],"entity":"person","rows":"all"}],"kernel":"uk.stage.uc_deduction_attributes@1","mass":"conserve","outputs":[{"column":"uc_deduction_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_type_random_draw","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_latent_deduction_rate","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"},{"column":"uc_deduction_combination","dtype":"string","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_incidence_clone.","id":"cgt_incidence_clone","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_clone@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_capital_gains_clone","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_incidence_clone","stage_contract_sha256":"ee30278543cc0297a5366d855b7753aa04af5518971594c193c52be36bf8a7b4","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_incidence_clone.","id":"cgt_incidence_clone.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_capital_gains_clone","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_capital_gains_clone","person.capital_gains"]},"population":"cgt_incidence_clone","sources":[],"structural":"none","weights":null},{"base":"cgt_incidence_clone","citation":"","description":"Run structural UK stage cgt_band_donors.","id":"cgt_band_donors","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_band_donors@1","mass":"free","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_band_donor","bool"],["person","capital_gains","float64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","stage":"cgt_band_donors","stage_contract_sha256":"e10e10c49c0ca2a6a65048c91b683f818e8b6e207a6c6f57a20d76ea299160b0","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_band_donors.","id":"cgt_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_band_donor"]},"population":"cgt_band_donors","sources":[],"structural":"none","weights":null},{"base":"cgt_band_donors","citation":"","description":"Ownership boundary before hmrc_cgt_gains_spine rewrites.","id":"hmrc_cgt_gains_spine.boundary","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","employee_pension_contributions","pension_contributions_via_salary_sacrifice","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_gains_spine.","id":"hmrc_cgt_gains_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","tax_free_savings_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_gains_spine@1","mass":"conserve","outputs":[{"column":"capital_gains","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"20ada8d8ee94400bd160223e865a910db7aff9c40a7f0c8ee8ca8c40ed901b72","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage salary_sacrifice.","id":"salary_sacrifice","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_pc","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital","uc_deduction_random_draw","uc_deduction_type_random_draw","uc_latent_deduction_rate","uc_deduction_combination"],"entity":"benunit","rows":"all"},{"columns":["region","tenure_type","accommodation_type","num_bedrooms","council_tax_reported","council_tax_band","council_tax_rebate","council_tax_single_adult_raw","water_and_sewerage_charges","domestic_rates","rent","subrent","mortgage_interest_repayment","mortgage_capital_repayment","structural_insurance_payments","housing_service_charges","external_child_payments","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","owned_land","property_wealth","corporate_wealth","private_pension_wealth","gross_financial_wealth","net_financial_wealth","main_residence_value","other_residential_property_value","non_residential_property_value","savings","num_vehicles","cash_isa","stocks_and_shares_isa","mortgage_debt","consumer_debt","food_and_non_alcoholic_beverages_consumption","alcohol_and_tobacco_consumption","clothing_and_footwear_consumption","housing_water_and_electricity_consumption","household_furnishings_consumption","health_consumption","transport_consumption","communication_consumption","recreation_consumption","education_consumption","restaurants_and_hotels_consumption","miscellaneous_consumption","petrol_spending","diesel_spending","bus_fare_spending","domestic_energy_consumption","electricity_consumption","gas_consumption","has_fuel_consumption","full_rate_vat_expenditure_rate","dfe_education_spending","rail_subsidy_spending","bus_subsidy_spending","rail_usage","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_capital_gains_clone","household_is_cgt_band_donor"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","is_household_head","is_benunit_head","is_parent","employment_income","self_employment_income","private_pension_income","tax_free_savings_income","savings_interest_income","dividend_income","property_income","maintenance_income","miscellaneous_income","private_transfer_income","lump_sum_income","student_loan_repayments","statutory_sick_pay","statutory_maternity_pay","student_loans","access_fund","education_grants","healthy_start_vouchers","free_school_breakfasts","free_school_fruit_veg","free_school_meals","council_tax_benefit_reported","maintenance_expenses","childcare_expenses","personal_pension_contributions","salary_sacrifice_reported","salary_sacrifice_asked","child_benefit_reported","income_support_reported","housing_benefit_reported","attendance_allowance_reported","dla_sc_reported","dla_m_reported","iidb_reported","carers_allowance_reported","sda_reported","afcs_reported","ssmg_reported","pension_credit_reported","child_tax_credit_reported","working_tax_credit_reported","state_pension_reported","winter_fuel_allowance_reported","incapacity_benefit_reported","universal_credit_reported","pip_m_reported","pip_dl_reported","jsa_contrib_reported","jsa_income_reported","esa_contrib_reported","esa_income_reported","bsp_reported","employment_status","employment_sector","sic_industry_division","aa_category","dla_sc_category","dla_m_category","pip_m_category","pip_dl_category","is_disabled_for_benefits","is_enhanced_disabled_for_benefits","is_severely_disabled_for_benefits","current_education","highest_education","is_in_non_advanced_education","is_in_approved_training","age_started_or_accepted_current_education_or_training","is_before_universal_credit_qualifying_young_person_terminal_date","adult_ema","child_ema","receives_benefits_in_own_right","legacy_jobseeker_proxy","esa_health_condition_proxy","esa_support_group_proxy","disabled_students_allowance_eligible_expenses","would_claim_marriage_allowance","would_claim_scp","attends_private_school_random_draw","tax_free_childcare_spend_routed_share","student_loan_balance","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","hmrc_spi_pay","hmrc_spi_unemployment_benefit_income","hmrc_spi_incapacity_benefit_income","ossben_identifiable_subset","srp_regular_code5","employer_pension_contributions","person_source_id","person_support_channel","person_support_clone_index","charitable_investment_gifts","gift_aid","other_investment_income","hmrc_spi_employment_benefits","hmrc_spi_employment_expenses","hmrc_spi_other_social_security_income","hmrc_spi_taxable_termination_pay","hmrc_spi_miscellaneous_employment_income","hmrc_spi_other_income","hmrc_spi_state_pension_income","hmrc_spi_employed_income","hmrc_spi_total_earned_income","hmrc_spi_total_investment_income","hmrc_spi_assessable_income","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.stage.salary_sacrifice@1","mass":"conserve","outputs":[{"column":"pension_contributions_via_salary_sacrifice","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"employee_pension_contributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"salary_sacrifice","stage_contract_sha256":"a4af925af21cc6766eb7c8855b6743a3aa4eeeb38df12cfc83063d7ad6890539","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Run UK spine stage student_loans.","id":"student_loans","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","current_education","employee_pension_contributions","highest_education","student_loan_repayments","student_loans"],"entity":"person","rows":"all"}],"kernel":"uk.stage.student_loans@1","mass":"conserve","outputs":[{"column":"student_loan_plan","dtype":"string","entity":"person","ownership":"produced","rows":"all"}],"params":{"stage":"student_loans","stage_contract_sha256":"7c4c76398c2e80b41c7f941a5f06246b57d89b5eb0c36d42e3116ac35e82e203","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} diff --git a/tools/fit_uk_childcare_takeup.py b/tools/fit_uk_childcare_takeup.py index 25f883125..38b66b49f 100644 --- a/tools/fit_uk_childcare_takeup.py +++ b/tools/fit_uk_childcare_takeup.py @@ -30,7 +30,7 @@ ) from microcosm.calibrate import TargetRegistry -TOOL_VERSION = 2 +TOOL_VERSION = 3 TARGET_IDS = ( "hmrc.tfc.government_top_up", "hmrc.tfc.children_with_used_accounts", @@ -58,7 +58,8 @@ def draw_childcare_inputs( seed: int, contract: UKTakeUpContract, ) -> dict[str, np.ndarray]: - """Generate identity-keyed flags while holding the hours distribution fixed.""" + """Identity-keyed flags with the hours distribution fixed (diagnostic helper; + the fit itself uses the expected-count objective).""" ids = np.asarray(benunit_ids) if np.asarray(params).shape != (4,): raise ValueError("childcare fitter accepts exactly four take-up rates") @@ -125,9 +126,9 @@ def fit_childcare_takeup( ledger_facts_sha256: str | None = None, target_period: int = 2024, vintage_overrides: Mapping[str, int] | None = None, - seed: int = 42, - maxiter: int = 5, - eps: float = 1e-2, + seed: int = 0, + maxiter: int = 50, + eps: float = 1e-6, runner: SimulationRunner | None = None, generated_at: str | None = None, targets: Mapping[str, float] | None = None, @@ -195,6 +196,7 @@ def objective(params: np.ndarray) -> float: "input_h5": str(input_h5), "input_sha256": _sha256(input_h5), "seed": seed, + "objective": "expected_count", "generated_at": generated_at or datetime.now(UTC).date().isoformat(), "model_period": target_period, "vintage_overrides": overrides, @@ -219,24 +221,109 @@ def objective(params: np.ndarray) -> float: } for name in TARGET_IDS }, + "ceilings_at_rate_1": _ceilings(input_h5, target_period, targets), } -def _policyengine_runner( - input_h5: Path, - params: np.ndarray, - seed: int, - target_period: int, - contract: UKTakeUpContract, -) -> Mapping[str, float]: +def _ceilings( + input_h5: Path, target_period: int, targets: Mapping[str, float] +) -> dict[str, dict[str, float]] | None: + """Each row's expectation with every rate at 1.0 (the frame's reach).""" + + basis = _BASIS_CACHE.get((str(Path(input_h5).resolve()), int(target_period))) + if basis is None: + return None + ceiling = expected_childcare_counts(basis, np.ones(4)) + return { + name: {"value": ceiling[name], "ratio": ceiling[name] / float(targets[name])} + for name in TARGET_IDS + } + + +FLAG_OUTPUTS = ( + "would_claim_tfc", + "would_claim_extended_childcare", + "would_claim_universal_childcare", + "would_claim_targeted_childcare", +) +OWN_RATE_BY_TARGET = { + "hmrc.tfc.government_top_up": "tax_free_childcare", + "hmrc.tfc.children_with_used_accounts": "tax_free_childcare", + "dfe.funded_childcare.working_parent_children_2_to_4": "extended_childcare", + "dfe.funded_childcare.early_learning_2_year_olds": "targeted_childcare", + "dfe.funded_childcare.universal_only_children": "universal_childcare", +} + + +class ChildcareExpectationBasis: + """Per-row weighted contributions with the take-up flags forced on. + + ``with_extended`` holds each target's weighted per-row values when every + flag is True; ``without_extended`` the same with the extended flag False. + The engine's only cross-scheme interactions are its mutual exclusions + (targeted and universal require a family that is not extended-eligible), + so at rates ``r`` a target's expected value is + ``r_own * sum(with_ext * r_e + without_ext * (1 - r_e))`` — linear in the + own rate, bilinear with the extended rate — and the extended row is + ``r_e * sum(with_ext)``. The expectation is the quantity a take-up *rate* + controls: the spine's persisted flags are one draw from it, and later + stages clone and re-key rows, so no re-drawn realisation can sit on the + build's own — the expectation can. + """ + + __slots__ = ("with_extended", "without_extended", "rows") + + def __init__( + self, + *, + with_extended: Mapping[str, np.ndarray], + without_extended: Mapping[str, np.ndarray], + rows: int, + ) -> None: + self.with_extended = dict(with_extended) + self.without_extended = dict(without_extended) + self.rows = int(rows) + + +def expected_childcare_counts( + basis: ChildcareExpectationBasis, params: np.ndarray +) -> dict[str, float]: + """Expected weighted aggregates at ``params`` (ordered as RATE_KEYS).""" + + rates = dict( + zip(RATE_KEYS, map(float, np.asarray(params, dtype=float)), strict=True) + ) + extended = rates["extended_childcare"] + expected: dict[str, float] = {} + for target, own in OWN_RATE_BY_TARGET.items(): + with_ext = basis.with_extended[target] + if own == "extended_childcare": + expected[target] = extended * float(with_ext.sum()) + continue + without_ext = basis.without_extended[target] + expected[target] = rates[own] * float( + (with_ext * extended + without_ext * (1.0 - extended)).sum() + ) + return expected + + +def _weighted_rows( + sim: Any, values: np.ndarray, entity: str, period: int +) -> np.ndarray: + weights = np.asarray(sim.calculate(f"{entity}_weight", period), dtype=float) + return np.asarray(values, dtype=float) * weights + + +def _basis_side( + input_h5: Path, target_period: int, contract: UKTakeUpContract, *, extended: bool +) -> dict[str, np.ndarray]: from policyengine_uk import Microsimulation sim = Microsimulation(dataset=str(input_h5)) - benunit_ids = np.asarray(sim.calculate("benunit_id", target_period)) - for variable, values in draw_childcare_inputs( - benunit_ids, params, seed=seed, contract=contract - ).items(): - sim.set_input(variable, target_period, values) + benunit_count = np.asarray(sim.calculate("benunit_id", target_period)).shape[0] + for variable in FLAG_OUTPUTS: + on = extended if variable == "would_claim_extended_childcare" else True + sim.set_input(variable, target_period, np.full(benunit_count, on, dtype=bool)) person_count = np.asarray(sim.calculate("person_id", target_period)).shape[0] sim.set_input( "tax_free_childcare_spend_routed_share", @@ -246,28 +333,73 @@ def _policyengine_runner( contract.rate("tax_free_childcare_spend_routed_share", target_period), ), ) + variables = sim.tax_benefit_system.variables + + def rows(variable: str, values: np.ndarray | None = None) -> np.ndarray: + entity = variables[variable].entity.key + raw = ( + np.asarray(sim.calculate(variable, target_period)) + if values is None + else values + ) + return _weighted_rows(sim, raw, entity, target_period) + + age = np.asarray(sim.calculate("age", target_period)) + extended_receiving = np.asarray( + sim.calculate("is_child_receiving_extended_childcare", target_period) + ) return { - "hmrc.tfc.government_top_up": float( - sim.calculate("tax_free_childcare", target_period).sum() - ), - "hmrc.tfc.children_with_used_accounts": float( - sim.calculate("is_child_receiving_tax_free_childcare", target_period).sum() + "hmrc.tfc.government_top_up": rows("tax_free_childcare"), + "hmrc.tfc.children_with_used_accounts": rows( + "is_child_receiving_tax_free_childcare" ), - "dfe.funded_childcare.working_parent_children_2_to_4": float( - ( - sim.calculate("is_child_receiving_extended_childcare", target_period) - & (sim.calculate("age", target_period) >= 2) - ).sum() + "dfe.funded_childcare.working_parent_children_2_to_4": rows( + "is_child_receiving_extended_childcare", extended_receiving & (age >= 2) ), - "dfe.funded_childcare.early_learning_2_year_olds": float( - sim.calculate("is_child_receiving_targeted_childcare", target_period).sum() + "dfe.funded_childcare.early_learning_2_year_olds": rows( + "is_child_receiving_targeted_childcare" ), - "dfe.funded_childcare.universal_only_children": float( - sim.calculate("is_child_receiving_universal_childcare", target_period).sum() + "dfe.funded_childcare.universal_only_children": rows( + "is_child_receiving_universal_childcare" ), } +def compute_childcare_basis( + input_h5: Path, target_period: int, contract: UKTakeUpContract +) -> ChildcareExpectationBasis: + """Two engine runs (extended flag on / off, every other flag on).""" + + with_extended = _basis_side(input_h5, target_period, contract, extended=True) + without_extended = _basis_side(input_h5, target_period, contract, extended=False) + return ChildcareExpectationBasis( + with_extended=with_extended, + without_extended=without_extended, + rows=int(with_extended["hmrc.tfc.children_with_used_accounts"].shape[0]), + ) + + +_BASIS_CACHE: dict[tuple[str, int], ChildcareExpectationBasis] = {} + + +def _policyengine_runner( + input_h5: Path, + params: np.ndarray, + seed: int, + target_period: int, + contract: UKTakeUpContract, +) -> Mapping[str, float]: + """Expected-count objective; ``seed`` is unused (no draw is taken).""" + + del seed + key = (str(Path(input_h5).resolve()), int(target_period)) + basis = _BASIS_CACHE.get(key) + if basis is None: + basis = compute_childcare_basis(input_h5, target_period, contract) + _BASIS_CACHE[key] = basis + return expected_childcare_counts(basis, params) + + def _parse_overrides(values: list[str]) -> dict[str, int]: result = {} for value in values: @@ -286,17 +418,24 @@ def main() -> None: parser.add_argument("--target-period", type=int, default=2024) parser.add_argument("--vintage-override", action="append", default=[]) parser.add_argument("--output", type=Path, required=True) - parser.add_argument("--seed", type=int, default=42) - parser.add_argument("--maxiter", type=int, default=5) + parser.add_argument( + "--seed", + type=int, + default=0, + help=( + "Recorded in the receipt; the expected-count objective takes no " + "draw (identity draws are a diagnostic helper only)." + ), + ) + parser.add_argument("--maxiter", type=int, default=50) parser.add_argument( "--eps", type=float, - default=1e-2, + default=1e-6, help=( - "Finite-difference step for L-BFGS-B on the four rates. The draws " - "are identity-keyed thresholds, so a step smaller than one over the " - "eligible base flips no unit and reads as a zero gradient; the " - "targeted 2-year-old base is a few hundred sample children." + "Finite-difference step for L-BFGS-B on the four rates. The " + "expected-count objective is smooth (bilinear in the rates), so " + "a small step is exact; recorded in the receipt." ), ) args = parser.parse_args() From 39de45835b53e1d162923db34968978e6ea65278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 08:15:55 +0200 Subject: [PATCH 05/11] =?UTF-8?q?Record=20the=20L4=20composition=20receipt?= =?UTF-8?q?s=20for=20#834=20(runs=201=E2=80=934,=20register=20verdict)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Run 1 is the weighting-sensitivity receipt (per-target uniform weights); run 2 the family-equal composition, equal to L4-pre to the second decimal with the seven new rows binding within 0.5%; run 4 reproduces it on a payload-identical rebuild with the seam supplying the exclusion clock, so the ported target-fit register renders its verdict: the four UC with-children cells defer, OBR CGT and the two state-pension bands fail unsigned, the private-pension band entry reads stale. The runner's --build-record-json is the seam's own output; the note records how run 2 overwrote the twin's spine sidecar and why the twin was rebuilt. Co-Authored-By: Claude Fable 5.1 --- experiments/834-childcare-tfc-receipts.md | 62 ++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/experiments/834-childcare-tfc-receipts.md b/experiments/834-childcare-tfc-receipts.md index 0da64ea98..623a620f3 100644 --- a/experiments/834-childcare-tfc-receipts.md +++ b/experiments/834-childcare-tfc-receipts.md @@ -336,7 +336,67 @@ terminal battery also failed closed on the ported gate (`KeyError: exclusions_ev the binding's required-artifact set lacked the exclusion clock, fixed on the branch (`7234d305`). -**Run 2 (converged landing 0.6054 / 0.4539, `family_equal` as L4-pre):** pending. +**Run 2 (converged landing 0.6054 / 0.4539, `family_equal` as L4-pre; `l4-834/run2/`).** Loss +0.352 → 0.0235, 90.0% of 371 targets within 10%, ESS 5 868 — L4-pre read 0.374 → 0.0259, 90.7% +of 364, 5 733. The seven new rows all bind and fit (initial → final): + +| row | initial | final | +|---|---|---| +| `hmrc.tfc.government_top_up` (£599.8m, FY2025-26) | 0.767 | 0.999 | +| `hmrc.tfc.children_with_used_accounts` (1 151 515) | 0.945 | 0.999 | +| `dfe.funded_childcare.working_parent_children_2_to_4` (621 482) | 0.975 | 1.000 | +| `dfe.funded_childcare.early_learning_2_year_olds` (95 031) | 0.766 | 0.997 | +| `dfe.funded_childcare.universal_only_children` (396 965) | 1.149 | 0.995 | +| `dft.bus_fare_receipts.england` (£3.417bn) | 0.569 | 0.999 | +| `dft.bus_net_support.england` (£3.025bn) | 0.712 | 1.002 | + +The pre-existing surface is where L4-pre left it, to the second decimal: the seven cells +outside `uk_target_fit`'s 25% are the same seven — OBR CGT +44.2% (A21), the four UC +with-children cells (single_with_children −35.3%, children_1 −28.9%, children_2 −38.9%, +children_5_or_more −28.6%; signed on the stack's register to 2026-09-30) and the two +state-pension SPI bands (+34.6% / +25.3%; the 50–70k deferral the stack retired as stale +twice, back outside the bound here); UC caseload −13.4% (L4-pre −12.7%); the two HMRC CGT +totals within 0.3%; the Scotland youngest-child row +0.3%; the private-pension 100–150k band ++24.7% (L4-pre +24.9%). So the childcare and bus rows are reachable by the weights on this +frame (targeted's 0.77× at design weights closes to 0.997 — the A22 row needs no deferral), +and the port neither helps nor harms the #145 residuals. Against uk-data 1.57.2's release ratios +at 2024 (universal 0.93, extended 1.16, targeted 0.78, TFC children 1.01, spend 0.99) the +composed surface binds the 2025 counterparts to within 0.5% each. + +The terminal battery on run 2 reports `uk_target_fit` as `evidence_absent` (missing +`exclusions_evaluated_on`): the ported gate reads the run clock from the battery's artifacts, +and main's calibration seam (`calibration_run.py`) supplies the clock only to the spine build's +battery, where the stack's own runner supplied it to the seam. Fixed on the composition +branch (the seam now passes the evaluation date, as the rowwise candidate build does). + +**Run 3 → run 4.** The re-run refused at the input sidecar: the runner's `--build-record-json` +is the seam's own output record, not the input's sidecar (the seam reads that from the H5's +`.build.json` path), and runs 1–2 had been pointed at the twin's spine record, so run 2 had +overwritten `l5-refit-b.build.json` with the seam's record (kept as +`l4-834/run2/calibration_build_record.json`). The H5, gate report and shares were untouched. +The twin is rebuilt into `l5-refit-twin-b2/` (sha `c63d824f…`; `l5b2_vs_l5b_payload.json`: +`payload_identical: true` — benunit, household, person and time_period byte-equal to twin-b, +the twin-determinism property of the 686 receipts holding on this tree) and +run 4 measures that build on the rebased composition branch (`91d740d6`, `385efc4d`, +`955c5dd2` on `db489ac0`); the solve is seeded, so run 4 reproduces run 2's numbers and adds +the gate verdict. + +**Run 4 (`l4-834/run4/`, twin-b2, the composition measurement).** Every final ratio equals run +2's (max |difference| 0.0). Terminal battery with the ported register, evaluated 2026-09-05: +`uk_target_fit` **fails** and blocks at the terminal phase — + +| disposition | cells | +|---|---| +| deferred (in force to 2026-09-30, microcosm#796) | the four UC with-children cells: single_with_children −35.3%, children_1 −28.9%, children_2 −38.9%, children_5_or_more −28.6% | +| failing, unsigned | `obr.capital_gains_tax` +44.2% (A21); `hmrc/state_pension_income_band_50_000_to_70_000` +34.6% (the deferral the stack retired as "measured stale twice", outside the bound again here as at L4-pre's +33.2%); `hmrc/state_pension_income_band_20_000_to_30_000` +25.3% (L4-pre +26.7%) | +| stale (back inside the bound; the rot rule says remove) | `hmrc/private_pension_income_count_income_band_100_000_to_150_000` +24.7% | + +None of the four is a #834 row: the seven new rows pass, and the A22 question (would the +targeted row need a deferral?) is answered no. The three unsigned failures and the stale entry +are the publication stack's open register questions — A21 for the CGT year; the two +state-pension bands and the pension-band entry for the stack's next re-cut — and are put to +María with this receipt rather than signed here. `release_candidate: false` throughout: the +seam never signs shippability. ## Part D — bus (#789) From 448f0cf9fa4c22606b827c69f5c5006e73b66b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 08:40:35 +0200 Subject: [PATCH 06/11] Fix the two full-tree funnel findings: cite uk-data, and carry the new reference fields in monetary-binding receipts (#834) The live-tree guard refuses the incumbent package name: the signed target-reference exclusions register now cites uk-data#230 and the uk-data PR as every other live file does. The monetary binding's activated-reference receipt is an exact key set; LedgerTargetReference gained value_operands and expected_member_count for the multi-member childcare rows, so the receipt contract and its hermetic fixture carry them. Co-Authored-By: Claude Fable 5.1 --- changelog.d/uk-childcare-bus-targets-834-789.added.md | 1 + .../build/uk/target_reference_signed_exclusions.json | 4 ++-- .../src/microcosm/calibrate/monetary_binding.py | 6 ++++++ packages/microcosm-calibrate/tests/test_monetary_binding.py | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/changelog.d/uk-childcare-bus-targets-834-789.added.md b/changelog.d/uk-childcare-bus-targets-834-789.added.md index 051722815..c1a3bacae 100644 --- a/changelog.d/uk-childcare-bus-targets-834-789.added.md +++ b/changelog.d/uk-childcare-bus-targets-834-789.added.md @@ -1 +1,2 @@ Add five UK childcare calibration targets and two active England bus-finance targets, with six signed bus exclusions (#834, #789). +The activated-reference receipt of monetary bindings now carries the reference's `value_operands` and `expected_member_count`, so a multi-member declaration stays byte-identical through activation. diff --git a/packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json index 50b8eb618..5981d7d25 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_signed_exclusions.json @@ -4,8 +4,8 @@ { "target_id": "hmrc.spi.property_income.amount_by_total_income_band", "reason_id": "property_income_undercount_adjustment_missing", - "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 policyengine-uk-data PR #311 / issue policyengine-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.", - "tracking": "policyengine-uk-data#230", + "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.", + "tracking": "uk-data#230", "approved_by": "juaristi22", "approved_on": "2026-09-05" }, diff --git a/packages/microcosm-calibrate/src/microcosm/calibrate/monetary_binding.py b/packages/microcosm-calibrate/src/microcosm/calibrate/monetary_binding.py index ff41bd38e..a5f0a82d1 100644 --- a/packages/microcosm-calibrate/src/microcosm/calibrate/monetary_binding.py +++ b/packages/microcosm-calibrate/src/microcosm/calibrate/monetary_binding.py @@ -64,6 +64,12 @@ class MonetaryBindingIntegrityError(RuntimeError): "uprating_index", "uprating_from_period", "uprating_to_period", + # #834: multi-member references (a sum or difference over declared + # operands) carry their operand roles and member-count guard in the + # receipt, so the activated reference stays byte-identical to the + # declaration that compiled it. + "value_operands", + "expected_member_count", } ) _PREPARED_KEYS = frozenset( diff --git a/packages/microcosm-calibrate/tests/test_monetary_binding.py b/packages/microcosm-calibrate/tests/test_monetary_binding.py index 4ad41637b..aac21acb7 100644 --- a/packages/microcosm-calibrate/tests/test_monetary_binding.py +++ b/packages/microcosm-calibrate/tests/test_monetary_binding.py @@ -84,6 +84,8 @@ def _target(values=(2.0, 4.0), ids=(1, 2)): "ledger_source_record_id": "synthetic.fact", "ledger_selector": {}, "value_operation": "identity", + "value_operands": [], + "expected_member_count": None, "entity": target.entity, "measure": target.measure, "filter": target.filter, From cc49f3db2df8fd229be51102f3e405be8eb70995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 15:06:21 +0200 Subject: [PATCH 07/11] Record the signed CGT deferral and run 5 in the #834 receipts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit María ruled A21 as option 1 on 2026-09-05: the facts stay bound as published and obr.capital_gains_tax@2025 is signed on the publication stack's register under microcosm#875 (window to 2026-10-05). Run 5 reproduces run 4 and the battery now defers five cells; the two state-pension bands and the stale private-pension band entry remain the stack's open questions. Co-Authored-By: Claude Fable 5.1 --- experiments/834-childcare-tfc-receipts.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/experiments/834-childcare-tfc-receipts.md b/experiments/834-childcare-tfc-receipts.md index 623a620f3..b3d53ab49 100644 --- a/experiments/834-childcare-tfc-receipts.md +++ b/experiments/834-childcare-tfc-receipts.md @@ -392,12 +392,23 @@ the gate verdict. | stale (back inside the bound; the rot rule says remove) | `hmrc/private_pension_income_count_income_band_100_000_to_150_000` +24.7% | None of the four is a #834 row: the seven new rows pass, and the A22 question (would the -targeted row need a deferral?) is answered no. The three unsigned failures and the stale entry -are the publication stack's open register questions — A21 for the CGT year; the two -state-pension bands and the pension-band entry for the stack's next re-cut — and are put to -María with this receipt rather than signed here. `release_candidate: false` throughout: the +targeted row need a deferral?) is answered no. `release_candidate: false` throughout: the seam never signs shippability. +**Run 5 (`l4-834/run5/`, the signed CGT deferral).** María ruled A21 as option 1 on 2026-09-05: +the facts stay bound as published and the OBR miss is signed on the stack register — +`obr.capital_gains_tax@2025`, adjudication microcosm#875 (the declared 2024-25 → 2025 +translation of the gains total: the index ruling, applying `uprating_index` in the compile +step, the taxpayer count flat at 584k under the £3 000 exempt amount, the cash-lag mapping for +self-assessed OBR lines), window 2026-09-05 → 2026-10-05, on `uk-publication-stack-834` +(`7aab6959`); #736's "CGT 2025 level" item points at it. Every final ratio equals run 4's +(max |difference| 0.0); the battery now reads five in-force deferrals (the four UC +with-children cells and the CGT cell), two unsigned failures — the state-pension SPI bands +50–70k +34.6% and 20–30k +25.3% — and the private-pension 100–150k entry stale (+24.7%). Those +three are the stack's, not #834's, and stay open for its next re-cut. While the CGT entry is +in force the calibrated 2025-26 base carries ~40% more CGT liability than OBR expects; the +publication's known issues must say so. + ## Part D — bus (#789) E9's Part D (`experiments/685-net-new-stages-receipts.md`) is the sizing evidence: at design From df8ff8230573308dab5203eefeb43c6562bd7fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 15:28:40 +0200 Subject: [PATCH 08/11] Regenerate the national membership report after the uk-data citation fix (#834) The membership report embeds the signed-exclusion rationale, so the citation fix in the register moved its digest; the references themselves are byte-identical. The packaged-report test carries the uk-data wording. Co-Authored-By: Claude Fable 5.1 --- .../src/microcosm/build/uk/target_reference_membership.json | 4 ++-- packages/microcosm-build/tests/test_uk_target_references.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 637fbc254..23c33a2d3 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 @@ -4082,7 +4082,7 @@ "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 policyengine-uk-data PR #311 / issue policyengine-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." + "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." } ] }, @@ -8013,7 +8013,7 @@ "family": "hmrc_spi", "target_id": "hmrc.spi.property_income.amount_by_total_income_band", "status": "signed_excluded", - "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 policyengine-uk-data PR #311 / issue policyengine-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." + "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." }, { "family": "ons_population", diff --git a/packages/microcosm-build/tests/test_uk_target_references.py b/packages/microcosm-build/tests/test_uk_target_references.py index 28c0cefd4..2e46a2d5b 100644 --- a/packages/microcosm-build/tests/test_uk_target_references.py +++ b/packages/microcosm-build/tests/test_uk_target_references.py @@ -560,8 +560,8 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: "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. " - f"The x1.9 trace is {UK_DATA_REPO} PR #311 / issue " - f"{UK_DATA_REPO}#230: SPI covers only taxpayers with liability, " + "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 " From 45833f1ebd72dda483e08309b365129f9616e661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 15:31:30 +0200 Subject: [PATCH 09/11] Approve the merged tree's uv.lock digest for the primary-QRF worker identity (#834) Main's #871 attests the workspace lock; this branch's policyengine-uk floor bump (>=2.93, lock 2.94.0) changed uv.lock, so the merged tree's digest is approved. No derived identity moved: the spec-engine identity, legacy adapter, re-emission, field-usage and inventory-coverage suites pass on the approved digest without a re-pin. Co-Authored-By: Claude Fable 5.1 --- .../src/microcosm/build/us_runtime/worker_identity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py b/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py index 1df039486..17104fd29 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py @@ -28,7 +28,7 @@ PRIMARY_QRF_WORKER_MODULE = "microcosm.build.us_runtime.puf_qrf_worker" PRIMARY_QRF_INTERPRETER_PLACEHOLDER = "{python_interpreter}" APPROVED_UV_LOCK_SHA256 = ( - "1c1444045960e111433b064abeeb40eebbf55984b7132931d9987697a6f4b606" + "ca9305fcebb5854d8d8369eb10fd134c918da7a79ab90f21c932c946b35165e5" ) LEGACY_CAMPAIGN_UV_LOCK_SHA256 = ( "27f47e385cfa35e2644a37410d1804b361ad9aee123577551c8421547bda65ee" From 336380fc1a9860627c215e231f2dd162d7f691ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Sat, 5 Sep 2026 20:13:01 +0200 Subject: [PATCH 10/11] Let the childcare fitter's receipt run without the engine installed (#834) The provenance receipt read policyengine-uk's version unconditionally, so the hermetic determinism test with an injected runner failed in CI's no-engine lanes (fast spine-uk, wheels) while every engine lane passed. The version is recorded as absent when the distribution is missing; a real fit still needs the engine for its basis runs. Co-Authored-By: Claude Fable 5.1 --- tools/fit_uk_childcare_takeup.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tools/fit_uk_childcare_takeup.py b/tools/fit_uk_childcare_takeup.py index 38b66b49f..219e02a19 100644 --- a/tools/fit_uk_childcare_takeup.py +++ b/tools/fit_uk_childcare_takeup.py @@ -188,7 +188,6 @@ def objective(params: np.ndarray) -> float: options={"maxiter": maxiter, "eps": eps}, ) achieved = dict(runner(input_h5, result.x, seed, target_period, contract)) - from importlib.metadata import version return { "tool": "fit_uk_childcare_takeup", @@ -203,7 +202,7 @@ def objective(params: np.ndarray) -> float: "ledger_facts_sha256": feed_sha256, "target_registry_version": registry_version, "stochastic_contract_sha256": contract.resource_sha256, - "engine_version": version("policyengine-uk"), + "engine_version": _engine_version(), "optimizer": { "method": "L-BFGS-B", "maxiter": maxiter, @@ -225,6 +224,22 @@ def objective(params: np.ndarray) -> float: } +def _engine_version() -> str | None: + """The installed policyengine-uk version, or None when it is absent. + + A real fit needs the engine (the basis runs import it); the receipt's + provenance field must not make a hermetic run with an injected runner + depend on the engine being installed. + """ + + from importlib.metadata import PackageNotFoundError, version + + try: + return version("policyengine-uk") + except PackageNotFoundError: + return None + + def _ceilings( input_h5: Path, target_period: int, targets: Mapping[str, float] ) -> dict[str, dict[str, float]] | None: From 659adb1ae129e47ffc00be7ce8cfe5ff365bd8a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Mon, 7 Sep 2026 14:23:55 +0200 Subject: [PATCH 11/11] Address Vahid's review of #874: compare fiscal-year facts on their coverage start year, pin DfT geographies from the declared area, refuse hermetic fitting receipts Finding 1: DfT labels its reporting year by the March end year (label 2025 is FY2024-25) where every other fiscal-year label on the surface is the opening year, and it says so in the fact's own coverage dates. A fiscal-year fact that carries period_coverage.start_date is now compared on that start year, with the publisher's label recorded as ledger_fact_period_label when it differs; facts without coverage keep their label. On the pinned feed only DfT's 24 facts translate (HMRC's labels already equal their coverage start; no other publisher carries coverage). The two active bus rows bind FY2024-25 at 2025 as a 2024 -> 2025 uprating hold, values unchanged; the references, membership and parity receipts are regenerated and two ledger tests pin the rule. Q1: DfT rows take their geography from the declared bus area (england, london, england_outside_london under DfT's own id, uk) instead of a prefix pin, so a held London or UK row can never be stamped England if activated; an undeclared area refuses. Q3: the take-up contract loader refuses a landed fitting_receipt whose engine_version is present and null (the receipt the hermetic fitter tests mint); receipts without the field stay valid. Finding 3 / Q4 / finding 2: the receipts name the tool-v3 fit's input (l5-refit.h5, c2804c18..., seed 0, unused) and declare that this tree's release-blocking uk_target_fit gate fails on OBR CGT until the publication stack merges the register that signs it (#875). Co-Authored-By: Claude Fable 5.1 --- experiments/834-childcare-tfc-receipts.md | 31 +++++-- .../src/microcosm/build/ledger_targets.py | 39 +++++++- ...ty_production_2023_signed_differences.json | 4 +- .../build/uk/target_reference_membership.json | 26 ++++-- .../microcosm/build/uk/target_references.json | 8 +- .../build/uk_runtime/take_up_contract.py | 27 ++++++ .../tests/test_ledger_targets.py | 88 +++++++++++++++++++ .../tests/test_uk_take_up_contract.py | 22 +++++ tools/generate_uk_target_references.py | 20 ++++- 9 files changed, 239 insertions(+), 26 deletions(-) diff --git a/experiments/834-childcare-tfc-receipts.md b/experiments/834-childcare-tfc-receipts.md index b3d53ab49..556a87388 100644 --- a/experiments/834-childcare-tfc-receipts.md +++ b/experiments/834-childcare-tfc-receipts.md @@ -250,9 +250,11 @@ take-up of 100%. The targeted bound is the reachable-ceiling problem above. A ra makes the persisted `would_claim_*` column constant, which the degenerate-surface gate refuses without a signed entry — a fit cannot sign that. -**Third run — the fitter re-designed (`fit_2024_expected.json`, tool version 3):** the second -run's rates were landed and the spine rebuilt, and the rebuilt twin exposed a seam the receipts -must carry: the build keys every take-up flag as `seed 0 : output : int64 benunit_id` at the +**Third run — the fitter re-designed (`fit_2024_expected.json`, tool version 3; input +`l5-refit-twin/l5-refit.h5`, sha `c2804c18…`, the spine rebuilt on the second run's landing, seed +0 — tool version 3 takes no draw, so the seed is recorded and unused; the landed +`fitting_receipt.input_h5_sha256` names this file):** the second run's rates were landed and the +spine rebuilt, and the rebuilt twin exposed a seam the receipts must carry: the build keys every take-up flag as `seed 0 : output : int64 benunit_id` at the `frs_take_up` stage, and later stages (SPI support channel, CGT incidence clone, age tail) clone and re-key rows, so no re-drawn realisation can sit on the persisted one — re-hashing the final ids agrees with the persisted universal flag on 66% of rows, chance being 51% — and the @@ -266,7 +268,9 @@ extended-eligible). The objective is smooth, exact for the build (the persisted draw from it), and reports each row's ceiling at a take-up of one. Checks: at the incumbent rates the expectations read spend 0.71, children 1.005, extended 1.32, targeted 0.49, universal 1.06 against the L3 measurements 0.70 / 1.02 / 1.28 / 0.60 / 1.10 (draw noise, amplified for -small bases by cloning); the unit test pins the bilinear form. +small bases by cloning); the unit test pins the bilinear form. The basis forces the flags on, so +the persisted draws of `l5-refit.h5` (which differ from `l2-column.h5` only in the two re-fitted +flags and the imputed surfaces downstream of them) do not enter it. | rate | incumbent | fitted (converged, loss 0.080) | expectation ÷ target | ceiling at 1.0 | |---|---|---|---|---| @@ -347,8 +351,8 @@ of 364, 5 733. The seven new rows all bind and fit (initial → final): | `dfe.funded_childcare.working_parent_children_2_to_4` (621 482) | 0.975 | 1.000 | | `dfe.funded_childcare.early_learning_2_year_olds` (95 031) | 0.766 | 0.997 | | `dfe.funded_childcare.universal_only_children` (396 965) | 1.149 | 0.995 | -| `dft.bus_fare_receipts.england` (£3.417bn) | 0.569 | 0.999 | -| `dft.bus_net_support.england` (£3.025bn) | 0.712 | 1.002 | +| `dft.bus_fare_receipts.england` (£3.417bn, FY2024-25 held to 2025) | 0.569 | 0.999 | +| `dft.bus_net_support.england` (£3.025bn, FY2024-25 held to 2025) | 0.712 | 1.002 | The pre-existing surface is where L4-pre left it, to the second decimal: the seven cells outside `uk_target_fit`'s 25% are the same seven — OBR CGT +44.2% (A21), the four UC @@ -409,16 +413,25 @@ three are the stack's, not #834's, and stay open for its next re-cut. While the in force the calibrated 2025-26 base carries ~40% more CGT liability than OBR expects; the publication's known issues must say so. +**On this branch's own tree** (no target-fit register on main), the release-blocking +`uk_target_fit` gate fails on `obr.capital_gains_tax` (+44.2%) in addition to main's +pre-existing UC with-children failures; the signing that absorbs it lives on the composition +branch until the publication stack merges its register. Declared, not carried, here. + ## Part D — bus (#789) E9's Part D (`experiments/685-net-new-stages-receipts.md`) is the sizing evidence: at design weights England fares 0.56× BUS05ai and net support 0.71× BUS05bi; London 0.28×; England outside London 0.74× / 0.97×; the LCFS fare gradient runs against NTS0705a (#790's disposition). -Re-measured on the L2 column twin against the FY2025 facts the two active rows bind -(`l2_bus_design_weight_receipt.json`, design weights, `region` ≠ Scotland/Wales/NI as England): +Re-measured on the L2 column twin against the facts the two active rows bind — DfT's +label-2025 rows, which are year-ending March 2025 (FY2024-25): DfT labels its reporting year by +the March end year, so the compile compares its fiscal-year facts on their own coverage start +year and binds them at 2025 as a 2024 → 2025 uprating hold, like every other lagged fact on the +surface (Vahid's review finding 1) — (`l2_bus_design_weight_receipt.json`, design weights, +`region` ≠ Scotland/Wales/NI as England): -| row | fact (FY2025, £bn) | L2 twin at design weights | ratio | +| row | fact (FY2024-25, DfT label 2025, £bn) | L2 twin at design weights | ratio | |---|---|---|---| | `dft.bus_fare_receipts.england` (active) | 3.417 | 1.945 | 0.569 | | `dft.bus_net_support.england` (active) | 3.025 | 2.153 | 0.712 | diff --git a/packages/microcosm-build/src/microcosm/build/ledger_targets.py b/packages/microcosm-build/src/microcosm/build/ledger_targets.py index fe0391e59..14e7c38cd 100644 --- a/packages/microcosm-build/src/microcosm/build/ledger_targets.py +++ b/packages/microcosm-build/src/microcosm/build/ledger_targets.py @@ -1553,15 +1553,39 @@ def _is_period_token(value: str) -> bool: return bool(period_key[0]) and 1000 <= period_key[1] // 100 <= 9999 +def _comparable_period_value(fact: object) -> object: + """The period value the surface compares a fact on. + + Every fiscal-year label on the surface is read as the opening year + (OBR's and HMRC's ``2025`` is FY2025-26). DfT labels its reporting year + by the March end year (``2025`` is YE March 2025, FY2024-25) and says so + in the fact's own coverage dates, so a fiscal-year fact that carries + ``period_coverage.start_date`` is keyed on that start year. Facts without + coverage keep their label; the publisher's label is recorded beside the + comparable value (``ledger_fact_period_label``) whenever they differ. + """ + + value = _at(fact, "period", "value") + if _str_at(fact, "period", "type") != "fiscal_year": + return value + start = _str_at(fact, "period_coverage", "start_date") + if len(start) < 4 or not start[:4].isdigit(): + return value + label = str(value).strip() + if not label.isdigit(): + return value + return int(start[:4]) + + def _period_key(fact: object) -> tuple[int, int, str]: - return _period_key_from_value(_at(fact, "period", "value")) + return _period_key_from_value(_comparable_period_value(fact)) def _exact_period_matches(fact: object, reference: LedgerTargetReference) -> bool: """Match exact periods by semantic value while retaining period-kind pins.""" expected_value = reference.period - actual_value = _at(fact, "period", "value") + actual_value = _comparable_period_value(fact) actual_type = _str_at(fact, "period", "type") selector_type = str(reference.ledger_selector.get("period_type", "")) expected_type_hint = period_type_hint(expected_value) @@ -1586,7 +1610,7 @@ def _reference_period_partition_key( ) -> tuple[int, int, str]: period_key = ( _normalize_period_value( - _at(fact, "period", "value"), + _comparable_period_value(fact), declared_type=_str_at(fact, "period", "type"), )[0] if reference.period_match_policy == "exact" @@ -2088,7 +2112,14 @@ def _ledger_metadata(fact: object, *, fact_key: str) -> dict[str, str]: "ledger_legal_vintage": _str_at(fact, "measure", "legal_vintage") or _str_at(fact, "concept_alignment", "legal_vintage"), "ledger_period_type": _str_at(fact, "period", "type"), - "ledger_fact_period": _str_at(fact, "period", "value"), + "ledger_fact_period": str(_comparable_period_value(fact)), + # Stamped only when the publisher's label differs from the comparable + # period (DfT's March-end fiscal labels); absent otherwise. + "ledger_fact_period_label": ( + _str_at(fact, "period", "value") + if str(_comparable_period_value(fact)) != _str_at(fact, "period", "value") + else "" + ), # Recorded only when the fact asserts it; legacy rows that omit the # field are not stamped (readers treat absence as # observation-by-default, same as the artifact loader). 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 80039a988..03601262a 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 @@ -898,14 +898,14 @@ }, { "kind": "ledger_only", - "ledger_value": 3105254075.49544, + "ledger_value": 3278976692.6359496, "name": "dft.bus_fare_receipts.england", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, { "kind": "ledger_only", - "ledger_value": 2247884765.6, + "ledger_value": 2651721003.6800003, "name": "dft.bus_net_support.england", "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." 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 23c33a2d3..3f8ae6fa9 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 @@ -796,27 +796,27 @@ }, "dft.bus_fare_receipts.london": { "geography_level": "country", - "geography_id": "E92000001" + "geography_id": "E12000007" }, "dft.bus_net_support.london": { "geography_level": "country", - "geography_id": "E92000001" + "geography_id": "E12000007" }, "dft.bus_fare_receipts.england_outside_london": { "geography_level": "country", - "geography_id": "E92000001" + "geography_id": "dft:england_outside_london" }, "dft.bus_net_support.england_outside_london": { "geography_level": "country", - "geography_id": "E92000001" + "geography_id": "dft:england_outside_london" }, "dft.bus_fare_receipts.uk": { "geography_level": "country", - "geography_id": "E92000001" + "geography_id": "K02000001" }, "dft.bus_net_support.uk": { "geography_level": "country", - "geography_id": "E92000001" + "geography_id": "K02000001" } }, "genuine_sum_residue": [ @@ -2718,6 +2718,16 @@ "name": "dfe.funded_childcare.universal_only_children", "from": "2025-01", "to": "2025" + }, + { + "name": "dft.bus_fare_receipts.england", + "from": "2024", + "to": "2025" + }, + { + "name": "dft.bus_net_support.england", + "from": "2024", + "to": "2025" } ], "targets": { @@ -7894,7 +7904,7 @@ "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, "resolved_value": 3417388656.43538, - "resolved_fact_period": "2025", + "resolved_fact_period": "2024", "resolved_fact_key": "ledger_aggregate_fact_v2_2ece7c3d283b6de43b30389f" } ] @@ -7909,7 +7919,7 @@ "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, "resolved_value": 3024904320.8399997, - "resolved_fact_period": "2025", + "resolved_fact_period": "2024", "resolved_fact_key": "ledger_aggregate_fact_v2_a12dfcdc0662c8a5e48bf003" } ] 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 128542f6b..c69ff3649 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -10647,7 +10647,9 @@ "contract_target_id": "dft.bus_fare_receipts.england", "measure_kind": "prepared_column", "observation_basis": "fiscal_year_flow" - } + }, + "uprating_from_period": "2024", + "uprating_to_period": 2025 }, { "name": "dft.bus_net_support.england", @@ -10668,7 +10670,9 @@ "contract_target_id": "dft.bus_net_support.england", "measure_kind": "prepared_column", "observation_basis": "fiscal_year_flow" - } + }, + "uprating_from_period": "2024", + "uprating_to_period": 2025 } ] } diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py index 682533863..eec1c79a3 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/take_up_contract.py @@ -184,6 +184,7 @@ def _entries(values: object, *, section: str) -> tuple[UKRateEntry, ...]: if not isinstance(source, Mapping): raise ValueError(f"UK take-up contract {key!r} requires source.") _validate_source(key, source) + _validate_fitting_receipt(key, item.get("fitting_receipt")) entries.append( UKRateEntry( key=key, @@ -195,6 +196,32 @@ def _entries(values: object, *, section: str) -> tuple[UKRateEntry, ...]: return tuple(entries) +def _validate_fitting_receipt(key: str, receipt: object) -> None: + """Refuse a landed receipt minted without the engine. + + The childcare fitter records the installed policyengine-uk version and + writes ``null`` when the engine is absent (its hermetic tests inject a + runner). A landed rate must come from a real fit, so a receipt that + carries the field must carry a version; receipts without the field + (the incumbent parity records) are unaffected. + """ + + if receipt is None: + return + if not isinstance(receipt, Mapping): + raise ValueError( + f"UK take-up contract {key!r} fitting_receipt must be an object." + ) + if "engine_version" in receipt: + version = receipt.get("engine_version") + if not isinstance(version, str) or not version.strip(): + raise ValueError( + f"UK take-up contract {key!r} fitting_receipt.engine_version must " + "name the engine the rate was fitted on; a hermetic receipt " + "(engine absent) cannot be landed." + ) + + def _continuous_entries(values: object) -> tuple[Mapping[str, Any], ...]: if not isinstance(values, Sequence) or isinstance(values, (str, bytes)): raise ValueError("UK take-up contract continuous must be a list.") diff --git a/packages/microcosm-build/tests/test_ledger_targets.py b/packages/microcosm-build/tests/test_ledger_targets.py index 2a63040f3..e3753cbd2 100644 --- a/packages/microcosm-build/tests/test_ledger_targets.py +++ b/packages/microcosm-build/tests/test_ledger_targets.py @@ -667,6 +667,94 @@ def test__given_selector_matches_multiple_years__then_latest_source_period_is_us ) +def _fiscal_year_row(label: int, *, value: float, coverage: bool): + row = _consumer_fact_row_for_period(label, value=value) + row["period"] = {"type": "fiscal_year", "value": label} + if coverage: + # DfT labels the reporting year by its March end year: label 2025 + # covers April 2024 to March 2025. + row["period_coverage"] = { + "basis": "fiscal", + "start_date": f"{label - 1}-04-01", + "end_date": f"{label}-03-31", + "notes": "DfT labels the reporting year by its March end year.", + } + return row + + +def test__given_fiscal_year_facts_with_coverage__then_the_start_year_is_compared() -> ( + None +): + # Given: a closing-year publisher (label 2026 covers FY2025-26) and the + # 2025 calibration period. + reference = LedgerTargetReference( + name="latest SOI AGI total", + ledger_selector={ + "source_name": "irs_soi", + "source_measure_id": "adjusted_gross_income", + "geography_level": "country", + "geography_id": "0100000US", + "entity_name": "tax_unit", + "layout_groupby_value_id": "all", + }, + entity="tax_unit", + measure="adjusted_gross_income", + period=2025, + family="irs_soi", + ) + + # When + registry = compile_ledger_target_references( + [ + _fiscal_year_row(2025, value=1.0, coverage=True), + _fiscal_year_row(2026, value=2.0, coverage=True), + _fiscal_year_row(2027, value=3.0, coverage=True), + ], + [reference], + country="us", + ) + + # Then: the label-2026 fact is FY2025-26, the latest not after 2025. + spec = registry.specs[0] + assert spec.value == 2.0 + assert spec.metadata["ledger_fact_period"] == "2025" + assert spec.metadata["ledger_fact_period_label"] == "2026" + + +def test__given_fiscal_year_facts_without_coverage__then_the_label_is_compared() -> ( + None +): + reference = LedgerTargetReference( + name="latest SOI AGI total", + ledger_selector={ + "source_name": "irs_soi", + "source_measure_id": "adjusted_gross_income", + "geography_level": "country", + "geography_id": "0100000US", + "entity_name": "tax_unit", + "layout_groupby_value_id": "all", + }, + entity="tax_unit", + measure="adjusted_gross_income", + period=2025, + family="irs_soi", + ) + + registry = compile_ledger_target_references( + [ + _fiscal_year_row(2025, value=1.0, coverage=False), + _fiscal_year_row(2026, value=2.0, coverage=False), + ], + [reference], + country="us", + ) + + spec = registry.specs[0] + assert spec.value == 1.0 + assert spec.metadata["ledger_fact_period"] == "2025" + assert "ledger_fact_period_label" not in spec.metadata + + def test__given_exact_period_policy__then_only_the_target_period_is_used() -> None: registry = compile_ledger_target_references( [ diff --git a/packages/microcosm-build/tests/test_uk_take_up_contract.py b/packages/microcosm-build/tests/test_uk_take_up_contract.py index d52f201b9..dc98ea2a8 100644 --- a/packages/microcosm-build/tests/test_uk_take_up_contract.py +++ b/packages/microcosm-build/tests/test_uk_take_up_contract.py @@ -61,6 +61,28 @@ def test_uk_contract_loads_and_selects_build_year_rates() -> None: ] +def test_landed_fitting_receipt_must_name_the_engine() -> None: + from microcosm.build.uk_runtime.take_up_contract import _entries + + entry = { + "key": "extended_childcare", + "output": "would_claim_extended_childcare", + "entity": "benunit", + "values": {"2024-04-06": 0.6054}, + "source": {"source": "fit", "status": "fitted_offline"}, + "fitting_receipt": {"seed": 0, "engine_version": None}, + } + with pytest.raises(ValueError, match="hermetic receipt"): + _entries([entry], section="programs") + + entry["fitting_receipt"]["engine_version"] = "2.94.0" + assert _entries([entry], section="programs")[0].key == "extended_childcare" + + # The incumbent parity records carry no engine field and stay valid. + entry["fitting_receipt"] = {"source": "incumbent UK pipeline", "seed": 42} + assert _entries([entry], section="programs") + + def test_year_selection_uses_latest_value_at_or_before_build_year() -> None: contract = load_uk_take_up_contract() diff --git a/tools/generate_uk_target_references.py b/tools/generate_uk_target_references.py index e921b8685..8219e52ad 100644 --- a/tools/generate_uk_target_references.py +++ b/tools/generate_uk_target_references.py @@ -213,12 +213,30 @@ def _geography_pins(contract: Mapping[str, Any]) -> dict[str, dict[str, str]]: # needs a per-nation redesign before it can activate. ("slc.support.", "england"), ("dfe.", "england"), - ("dft.", "england"), ) +# DfT BUS05i rows name their area in the selector; the geography follows the +# declared area, never a prefix, so a London or UK row can never be stamped +# England if it is activated. Sub-national DfT areas carry DfT's own ids. +DFT_BUS_AREA_GEOGRAPHY_IDS = { + "england": UK_GEOGRAPHY_IDS["england"], + "london": "E12000007", + "england_outside_london": "dft:england_outside_london", + "uk": UK_GEOGRAPHY_IDS["uk"], +} def _geography_id_for_target(target: Mapping[str, Any]) -> str: target_id = str(target["target_id"]).lower() + if target_id.startswith("dft."): + area = str( + (target.get("ledger_selector") or {}).get("layout_groupby_value_id", "") + ) + if area not in DFT_BUS_AREA_GEOGRAPHY_IDS: + raise ValueError( + f"{target_id}: DfT rows must declare layout_groupby_value_id in " + f"{sorted(DFT_BUS_AREA_GEOGRAPHY_IDS)}, got {area!r}." + ) + return DFT_BUS_AREA_GEOGRAPHY_IDS[area] for prefix, geography_key in TARGET_PREFIX_GEOGRAPHY_PINS: if target_id.startswith(prefix): return UK_GEOGRAPHY_IDS[geography_key]